例如,假设我们有一个工会
typedef union {
unsigned long U32;
float f;
}U_U32_F;
当声明这个联合类型的变量时,有没有办法设置一个初始值?
U_U32_F u = 0xffffffff; // Does not work...is there a correct syntax for this?
例如,假设我们有一个工会
typedef union {
unsigned long U32;
float f;
}U_U32_F;
当声明这个联合类型的变量时,有没有办法设置一个初始值?
U_U32_F u = 0xffffffff; // Does not work...is there a correct syntax for this?
使用初始化列表:
U_U32_F u = { 0xffffffff };
您可以通过以下方式设置第一个成员以外的其他成员
U_U32_F u = { .f = 42.0 };
请注意,每个成员联合初始化在 C99 之前的编译器上不起作用,其中有一个令人沮丧的数字。例如,当前的 Microsoft C 编译器不支持它。(我隐约记得它甚至不支持第一成员初始化,这可以追溯到 K&R II,但我可能错了。)
尝试U_U32_F u = {0xffffffff};