種類 |
整合の境界 |
バイト境界 |
---|---|---|
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 バイトの境界上に並びます。