小编I.D*_*.D.的帖子

已签名的基础类型枚举的位域溢出

这仅适用于C++ 11:

如果我有一个常规的枚举如下:

enum TestType
{
Test0 = 0,
Test1,
Test2,
Test3,
Test4,
Test5,
Test6,
Test7
}
Run Code Online (Sandbox Code Playgroud)

和这样的压缩结构:

struct
{
TestType a : 3
uint32_t b : 5
} TestStruct;
Run Code Online (Sandbox Code Playgroud)

TestStruct.a保证访问时等于任何有效的分配枚举值?或者编译器是否有可能分配已签名的基础类型,然后将位域a视为范围-4到3.

c++ enums bit-fields c++11

7
推荐指数
1
解决办法
160
查看次数

标签 统计

bit-fields ×1

c++ ×1

c++11 ×1

enums ×1