私は次のようなコードを持っています:
void generateInt(int *result)
{
/* chosen by fair dice roll*/
*result = 1;
}
typedef enum colour
{
RED,
GREEN,
BLUE
} COLOUR;
int main(int, char**)
{
COLOUR col, col2;
int i;
generateInt(&i);
col = (COLOUR)i;
generateInt((int*)(&col2));
return 0;
}
への2回目の呼び出しの後、とgenerateInt
は両方とも等しいことが保証されますか?最初のバージョン設定が合法であることは知っていますが、pointer-to-enumをpointer-to-intにキャストし、ポインターを介して割り当てるとどうなるかが定義されているかどうかはわかりません。col
col2
GREEN
col