繁体   English   中英

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

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

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