我有类似于以下的代码:
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;
}
在第二次调用之后,generateInt
是否都保证等于?我知道第一个版本设置是合法的,但我不知道它是否定义了如果将指针到枚举转换为指针到int,然后通过指针分配会发生什么。col
col2
GREEN
col