比特场是一个对象吗?

md5*_*md5 4 c object bit-fields

根据C11,一个目标是:

#C11§3:术语,定义和符号
对象:执行环境中的数据存储区域,其内容可以表示值.

位域可以表示一个值,因此它应该是一个对象.但是,我被告知事实并非如此.

什么是正确的答案?

eca*_*mur 7

6.2.6.1p2说" 除了位字段,对象由一个或多个字节的连续序列组成[...] ",因此很明显位字段是对象.类似地,6.2.6.1p4指的是" 非位域对象 ".

3.5p1将该位定义为数据存储单元; 位字段是位区域,因此必须是数据存储区域.该标准区分对象和存储器位置(存储器位置是" 标量类型的对象,或者所有具有非零宽度的相邻位域的最大序列 "; 3.14p1)因此对象不需要具有不同的存储器位置.