根据C11,一个目标是:
#C11 § 3: Terms,definitions,and symbols
object: region of data storage in the execution environment,the contents of
which can represent values.
位域可以表示一个值,因此它应该是一个对象.但是,我被告知事实并非如此.
什么是正确的答案?
解决方法
6.2.6.1p2说“除了位字段,对象由一个或多个字节的连续序列组成[…]”,因此很明显位字段是对象.类似地,6.2.6.1p4指的是“非位域对象”.
3.5p1将该位定义为数据存储单元;位字段是位区域,因此必须是数据存储区域.该标准区分对象和存储器位置(存储器位置是“标量类型的对象,或者所有具有非零宽度的相邻位域的最大序列”; 3.14p1)因此对象不需要具有不同的存储器位置.