(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 |
byte |
1 |
short |
halfword |
2 |
int |
word |
4 |
long (SPARC) v8 |
word |
4 |
long (SPARC) v9 |
doubleword |
8 |
float (SPARC) |
word |
4 |
double (SPARC) |
doubleword |
8 |
double (x86) |
doubleword |
4 |
long double (SPARC) v8 |
doubleword |
8 |
long double (x86) |
word |
4 |
long double (SPARC) v9 |
quadword |
16 |
pointer (SPARC) v8 |
word |
4 |
pointer (SPARC) v9 |
quadword |
8 |
long long |
doubleword (SPARC) |
8 |
long long (x86) |
word |
4 |
_Complex |
float |
8 |
_Complex |
double |
16 |
_Complex |
long double |
32 |
_Imaginary |
float |
4 |
_Imaginary (SPARC) |
double |
8 |
_Imaginary (x86) |
double |
4 |
_Imaginary (SPARC) v8 |
long double |
8 |
_Imaginary (SPARC) v9 |
long double |
16 |
_Imaginary (x86) |
long double |
4 |
(6.7.2.2) 各列挙型と互換性のある整数型。
int 型です。