[英]Assign enum(declared inside a struct) value to a variable of the same enum type inside the struct
我有以下类型的结构
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) zero
不是struct
的成员。 2) struct
内部的enum
未声明任何成员。 可以在任何地方声明。 枚举成员被命名为常量,它们不是变量,并且3) Number
需要enum
限定符:
struct enumStruct
{
enum Number
{
zero = 0,
one = 1
};
enum Number t;
union
{
/* t = 0 */
some_struct_zero zero;
/* t = 1 */
some_struct_one one;
} un;
} v_enumStruct;
您最好移动enum Number { ..};
在struct
外部,因为它在结构内部未做任何事情。 现在您应该可以分配:
v_enumStruct.t = zero;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.