【问题标题】:Is a bit-field an object?位域是对象吗?
【发布时间】:2012-10-19 16:39:52
【问题描述】:

根据C11,一个对象是:

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

位域可以表示一个值,所以它应该是一个对象。但是,有人告诉我事实并非如此。

正确答案是什么?

【问题讨论】:

    标签: c object bit-fields


    【解决方案1】:

    6.2.6.1p2 说“除了位域,对象由一个或多个字节的连续序列组成 [...]”,因此位域是对象似乎很清楚.同样,6.2.6.1p4 指的是“非位域对象”。

    3.5p1定义位为数据存储单位;位字段是位区域,因此必须是数据存储区域。该标准区分对象和内存位置(内存位置是“标量类型的对象,或所有具有非零宽度的相邻位域的最大序列”;3.14p1)因此对象需要没有明确的内存位置。

    【讨论】:

    • 这就是我想要的。谢谢!
    猜你喜欢
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 2016-04-10
    • 2011-08-17
    • 1970-01-01
    • 2011-05-11
    • 2011-03-06
    • 2012-02-08
    相关资源
    最近更新 更多