根据C11,对象是:
#C11§3:术语,定义和符号
object :执行环境中的数据存储区域,内容 这可以代表价值观。
位域可以表示一个值,因此它应该是一个对象。但是,我被告知事实并非如此。
答案是什么?
答案 0 :(得分:7)
6.2.6.1p2表示“除了位字段外,对象由一个或多个字节的连续序列组成[...] ”,因此很明显位字段是对象。同样,6.2.6.1p4引用“非位字段对象”。
3.5p1将该位定义为数据存储单元;位字段是位区域,因此必须是数据存储区域。该标准区分了对象和内存位置(内存位置是“标量类型的对象,或相邻位域的最大序列都具有非零宽度”; 3.14p1)所以对象需要没有明确的记忆位置。