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

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

我可以在C或C ++的位字段中指定的位数是否有限制? 例如,我可以这样做:

struct HugeInt { int myInt: 1000; }; 

我问的是C和C ++,因为我知道语言规范有时会有所不同,并希望看看上面的例子是否可以保证在C或C ++中工作/不工作。

在C11,第6.7.2.1节,第4节:

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

简而言之,如果它没有位字段部分,它必须介于0和类型的大小之间。

位字段’myInt’(1000位)的大小不能超过其类型的大小(int,通常为32位)