我有类似于以下代码的东西:
在第二次调用
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
之后,col
和col2
是否都保证等于GREEN
?我知道第一个版本设置col
是合法的,但我不知道如果将指向枚举的指针转换为指向整数的指针,然后通过指针赋值会发生什么。
generateInt
实际上是一个通用函数,它从从文件获取的数据中读取下一个(整数)字段。 - Chowlettsizeof(int)
或字节顺序,该怎么办?为什么不使用一致的存储格式,并让加载函数设置枚举值的值呢? - Greg Inozemtsev