gpt4 book ai didi

c - 在编译时设置 union 的值

转载 作者:太空狗 更新时间:2023-10-29 15:36:30 30 4
gpt4 key购买 nike

<分区>

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;

但我还没有找到一种方法可以像上面那样用结构体来完成。

提前致谢。

编辑:这是重复的。我应该一直使用“初始化”这个词,它会把我直接带到那个。今天我的谷歌一定很虚弱。谢谢。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com