C或C++中位域的最大大小?

tem*_*def 10 c c++ struct bit-fields

可能重复:
struct bitfield max size(C99,C++)

我可以在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节:

指定位字段宽度的表达式应为整数常量表达式,其非负值不超过将指定的类型的对象的宽度,省略冒号和表达式.如果该值为零,则声明不应具有声明者.

所以简而言之,如果它没有位字段部分,它必须在零和类型的大小之间.