|
種類 |
整合の境界 |
バイト境界 |
|---|---|---|
|
char と _Bool |
バイト |
1 |
|
short |
ハーフワード |
2 |
|
int |
ワード |
4 |
|
long -m32 |
ワード |
4 |
|
long -m64 |
ダブルワード |
8 |
|
long long -m32 |
ダブルワード (SPARC) ワード (x86) |
8 (SPARC) 4 (x86) |
|
long long -m64 |
ダブルワード |
8 |
|
float |
ワード |
4 |
|
double -m32 |
ダブルワード (SPARC) ワード (x86) |
8 (SPARC) 4 (x86) |
|
double -m64 |
ダブルワード |
8 |
|
long double -m32 |
ダブルワード (SPARC) ワード (x86) |
8 (SPARC) 4 (x86) |
|
long double -m64 |
クワドワード |
16 |
|
pointer -m32 |
ワード |
4 |
|
pointer -m64 |
クワドワード |
8 |
|
float _Complex |
ワード |
4 |
|
double _Complex -m32 |
ダブルワード (SPARC) ワード (x86) |
8 (SPARC) 4 (x86) |
|
double _Complex -m64 |
ダブルワード |
8 |
|
long double _Complex -m32 |
ダブルワード (SPARC) ワード (x86) |
8 (SPARC) 4 (x86) |
|
long double _Complex -m64 |
クワドワード |
16 |
|
float _Imaginary |
ワード |
4 |
|
double _Imaginary -m32 |
ダブルワード (SPARC) ワード (x86) |
8 (SPARC) 4 (x86) |
|
double _Imaginary -m64 |
ダブルワード |
8 |
|
long double _Imaginary -m32 |
ダブルワード (SPARC) ワード (x86) |
8 (SPARC) 4 (x86) |
|
long double _Imaginary -m64 |
ダブルワード |
16 |
各要素が適切な境界上に並ぶように、構造体のメンバーが自動的に埋め込まれます。
構造体自身の整列条件はそのメンバーの整列条件と同一です。たとえば、chars 型だけの struct は整列の制限がありませんが、—m64 を使用してコンパイルされた double 型を含む struct は 8 バイトの境界上に並びます。