[英]Assign enum(declared inside a struct) value to a variable of the same enum type inside the struct
I have a structure of below type 我有以下类型的结构
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;
Can I assign a value to v_enumStruct.t
as below? 我可以按以下方式为
v_enumStruct.t
分配一个值吗?
v_enumStruct.t = v_enumStruct.zero;//Option 1
Also, the below does not seem to work 此外,以下似乎不起作用
v_enumStruct.t = zero; //Option 2 - zero is mistaken as an unavailable variable name
1) zero
is not a member of struct
. 1)
zero
不是struct
的成员。 2) The enum
inside struct
doesn't declare any member. 2)
struct
内部的enum
未声明任何成员。 It can be declared anywhere. 可以在任何地方声明。 enum members are named constants, they are not variables and 3)
Number
needs the enum
qualifier: 枚举成员被命名为常量,它们不是变量,并且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;
You might as well move the enum Number { ..};
您最好移动
enum Number { ..};
outside the struct
as it's not doing anything inside the struct. 在
struct
外部,因为它在结构内部未做任何事情。 Now you should be able to assign: 现在您应该可以分配:
v_enumStruct.t = zero;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.