4

C11 によると、オブジェクトは次のとおりです。

#C11 § 3: 用語、定義、および記号
オブジェクト: 実行環境におけるデータ ストレージの領域。その内容は値を表すことができます。

ビットフィールドは値を表すことができるため、オブジェクトである必要があります。しかし、そうではないと言われました。

正解は?

4

1 に答える 1

7

6.2.6.1p2は、「ビットフィールドを除いて、オブジェクトは1バイト以上の連続したシーケンスで構成されています[...]」と述べているため、ビットフィールドがオブジェクトであることは明らかです。同様に、6.2.6.1p4は「非ビットフィールドオブジェクト」を指します。

3.5p1は、ビットをデータストレージの単位として定義します。ビットフィールドはビットの領域であるため、データストレージの領域である必要があります。標準では、オブジェクトとメモリ位置を区別します(メモリ位置は、「スカラー型のオブジェクト、またはすべてゼロ以外の幅を持つ隣接するビットフィールドの最大シーケンス」; 3.14p1)ので、オブジェクトは明確なメモリ位置を持つ必要はありません。

于 2012-10-19T16:46:55.947 に答える