【发布时间】:2014-05-12 10:23:12
【问题描述】:
我有以下类型的结构
struct enumStruct
{
enum Number
{
zero = 0,
one = 1
};
Number t;
union
{
/* t = 0 */
some_struct_zero zero;
/* t = 1 */
some_struct_one one;
} un;
} v_enumStruct;
我可以为v_enumStruct.t 赋值吗?
v_enumStruct.t = v_enumStruct.zero;//Option 1
此外,以下似乎不起作用
v_enumStruct.t = zero; //Option 2 - zero is mistaken as an unavailable variable name
【问题讨论】:
-
我的猜测是“不”。你试过了吗?编译器是怎么想的?
-
我试过了,选项 1 奏效了!
-
如果有什么像你在这里展示的那样工作,你很有可能将它编译为 C++ 而不是 C。这是两种不同的语言。
-
确实是cpp头。那么,我应该明白这在 C 中可能不起作用吗?