将枚举(在结构体内部声明的)值赋给结构体内部相同枚举类型的变量
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;
相关文章:
- 我不明白为什么我声明一个空的内部结构并将其传递给构造函数
- 卷曲bracers内部结构的声明
- 根据用户回答声明"Players"。用户选择玩家数量。播放器是结构体
- 结构体 S { int align; } 之间的区别;(struct 关键字后的名称)和 struct { int al
- C++ - 如何在结构向量中找到结构体一个成员的最大值?
- 包含 std::list 的结构体的 C++ 初始化
- 结构体和类的不同大小(),彼此具有相同的字段类型
- 如何使用结构体的向量数组?
- 如何使用结构体在C++中更改这些代码?
- 无法在 Mosquitto MQTT Broker 插件上访问结构体 mosquitto 的元素
- 我应该如何在C++中使用结构体解决输入失败的问题?
- Qsort() 比较结构体整数的总和
- 内部结构初始化不起作用 - C++
- 结构内部结构的联合 - 混合 C 和 C++
- 如何使用迭代器指向结构体c++的向量
- 在C++中使用链表的堆栈实现中,访问结构体headNode成员count和top会导致运行时错误
- 如何获取结构体成员的地址
- 构造一个内部有结构体的类
- Calloc (), malloc() vs新建一个内部有unordered_map的结构体
- 内部有结构体的Enum或数组