(6.7.2, 6.7.2.1) 単純な int 型ビットフィールドを signed int 型 ビットフィールドまたは unsigned int ビットフィールドのどちらにみなすか。
unsigned int とみなされます。
(6.7.2.1) _Bool、signed int、および unsigned int 以外に使用可能なビットフィールドの型。
ビットフィールドは任意の整数型として宣言できます。
(6.7.2.1) ビットフィールドが記憶装置の境界を越えられるかどうか。
ビットフィールドは記憶装置の境界を越えません。
(6.7.2.1) ユニット内のビットフィールドの割り当て順序。
ビットフィールドは、記憶装置内で高位から低位の順に割り当てられます。
(6.7.2.1) 構造体のビットフィールド以外のメンバーの整列条件。1 つの実装で書き込まれたバイナリデータが別の実装で読み取られないかぎり、このことは問題になりません。
| 種類 | 整合の境界 | バイト境界 | 
|---|---|---|
| char と _Bool | byte | 1 | 
| short | halfword | 2 | 
| int | word | 4 | 
| long -m32 | word | 4 | 
| long -m64 | doubleword | 8 | 
| float | word | 4 | 
| double -m64 | doubleword | 8 | 
| double (SPARC) -m32 | doubleword | 8 | 
| double (x86) -m32 | doubleword | 4 | 
| long double (SPARC) -m32 | doubleword | 8 | 
| long double (x86) -m32 | word | 4 | 
| long double -m64 | quadword | 16 | 
| pointer -m32 | word | 4 | 
| pointer -m64 | quadword | 8 | 
| long long —m64 | doubleword | 8 | 
| long long (x86) -m32 | word | 4 | 
| long long (SPARC) -m32 | doubleword | 8 | 
| _Complex float | word | 4 | 
| _Complex double -m64 | doubleword | 8 | 
| _Complex double (SPARC) -m32 | doubleword | 8 | 
| _Complex double (x86) -m32 | doubleword | 4 | 
| _Complex long double -m64 | quadword | 16 | 
| _Complex long double (SPARC) -m32 | quadword | 8 | 
| _Complex long double (x86) -m32 | quadword | 4 | 
| _Imaginary float | word | 4 | 
| _Imaginary double -m64 | doubleword | 8 | 
| _Imaginary double (x86) -m32 | doubleword | 4 | 
| _Imaginary (SPARC) -m32 | doubleword | 8 | 
| _Imaginary long double (SPARC) -m32 | doubleword | 8 | 
| _Imaginary long double -m64 | quadword | 16 | 
| _Imaginary long double (x86) -m32 | word | 4 | 
(6.7.2.2) 各列挙型と互換性のある整数型。
int 型です。