Oracle® Developer Studio 12.5: C ユーザーズガイド

印刷ビューの終了

更新: 2016 年 7 月
 
 

3.1 不可分 C 型のサイズと整列

次の表は、不可分データ型とそれらがどのように表されるかを示しています。整列 (align 列) はバイト単位です。

表 7  不可分 C 型のサイズと整列
C の型
LP64 (AMD64) のサイズ
LP64 (AMD64) の整列
ILP32 (i386) のサイズ
ILP32 (i386) の整列
LP64 (v9) のサイズ
LP64 (v9) の整列
ILP32 (SPARC) のサイズ
ILP32 (SPARC) の整列
整数
_Atomic _Bool
1
1
1
1
1
1
1
1
_Atomic char
_Atomic signed char
1
1
1
1
1
1
1
1
_Atomic unsigned char
1
1
1
1
1
1
1
1
_Atomic short
_Atomic signed short
2
2
2
2
2
2
2
2
_Atomic unsigned short
2
2
2
2
2
2
2
2
_Atomic int
_Atomic signed int
_Atomic enum
4
4
4
4
4
4
4
4
_Atomic unsigned int
4
4
4
4
4
4
4
4
_Atomic long
_Atomic signed long
_Atomic unsigned long
8
8
4
4
8
8
4
4
_Atomic long long
_Atomic signed long long
_Atomic unsigned long long
8
8
8
8
8
8
8
8
ポインタ
any-type _Atomic *
_Atomic( any-type (*) () )
8
8
4
4
8
8
4
4
浮動小数点
_Atomic float
4
4
4
4
4
4
4
4
_Atomic double
8
8
8
8
8
8
8
8
_Atomic long double
16
16
12
4
16
16
16
8
複素数
_Atomic float _Complex
8
8
8
8
8
8
8
8
_Atomic double _Complex
16
16
16
16
16
16
16
8
_Atomic long double _Complex
32
16
24
4
32
16
32
8
虚数
_Atomic float _Imaginary
4
4
4
4
4
4
4
4
_Atomic double _Imaginary
8
8
8
8
8
8
8
8
_Atomic long double _Imaginary
16
16
12
4
16
16
16
8
構造体 (選択的な例)
_Atomic struct {char a[2];}
2
2
2
2
2
2
2
2
_Atomic struct {short a[2];}
4
4
4
4
4
4
4
4
_Atomic struct {int a[2];}
8
8
8
8
8
8
8
8
_Atomic struct {char a[16];}
16
16
16
16
16
16
16
8

不可分 struct 型の一般的な整列規則では、struct 型のサイズが 2、4、8、16 のいずれかであり、かつ対応する非不可分型の整列がこのサイズより小さい場合は、このサイズに一致するように不可分 struct 型の整列が増やされます。

不可分型は、ビットフィールドでは許可されません。