簡體   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