简体   繁体   English

将枚举(在结构内部声明)值分配给该结构内部具有相同枚举类型的变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM