tem*_*def 10 c c++ struct bit-fields
我可以在C或C++的位字段中指定的位数是否有限制?例如,我可以这样做:
struct HugeInt {
int myInt: 1000;
};
Run Code Online (Sandbox Code Playgroud)
我问的是C和C++,因为我知道语言规范有时会有所不同,并且想看看上面的例子是否保证在C或C++中工作/不工作.
ick*_*fay 14
在C11,第6.7.2.1节,第4节:
指定位字段宽度的表达式应为整数常量表达式,其非负值不超过将指定的类型的对象的宽度,省略冒号和表达式.如果该值为零,则声明不应具有声明者.
所以简而言之,如果它没有位字段部分,它必须在零和类型的大小之间.