<分区>
Possible Duplicate:
Can a union be initialized in the declaration?
我在整个 Internet 上都看过了,但找不到有关如何在编译时在结构中设置 union 值的示例,我希望你们能帮助我。例如,一个简单的结构是:
typedef enum {
typeFloat,
typeInt
} Type;
typedef struct myStruct {
Type elementType;
int valueInt;
float valueFloat;
} myStruct;
然后你可以声明一个局部变量:
myStruct structEx = {typeInt, 349, 0};
或
myStruct structEx = {typeFloat, 0, 349.349};
如果结构声明为:
typedef struct myStruct {
Type elementType;
union value {
int valueInt;
float valueFloat;
} value;
} myStruct;
“值”将是 float 或整数,“元素类型”允许它知道它是哪个。
我知道你可以在运行时设置它:
myStruct structEx;
structEx.elementType = typeInt;
structEx.value.valueInt = 349;
但我还没有找到一种方法可以像上面那样用结构体来完成。
提前致谢。
编辑:这是重复的。我应该一直使用“初始化”这个词,它会把我直接带到那个。今天我的谷歌一定很虚弱。谢谢。