(5.2.4.2, 7.18.2, 7.18.3) ヘッダーの <float.h>、<limits.h>、および <stdint.h> に指定されているマクロに割り当てられている値または式。
<float.h> に指定されているマクロに対する値または式は次のとおりです。
#define CHAR_BIT 8 /* 「char」の最大ビット数 */ #define SCHAR_MIN (-128) /* 「signed char」の最小値 */ #define SCHAR_MAX 127 /* 「signed char」の最大値 */ #define CHAR_MIN SCHAR_MIN /* 「char」の最小値 */ #define CHAR_MAX SCHAR_MAX /* 「char」の最大値 */ #define MB_LEN_MAX 5 #define SHRT_MIN (-32768) /* 「short int」の最小値 */ #define SHRT_MAX 32767 /* 「short int」の最大値 */ #define USHRT_MAX 65535 /* 「unsigned short int」の最大値 */ #define INT_MIN (-2147483647-1) /* 「int」の最小値 */ #define INT_MAX 2147483647 /* 「int」の最大値 */ #define UINT_MAX 4294967295U /* 「unsigned int」の最大値 */ #define LONG_MIN (-2147483647L-1L) #define LONG_MAX 2147483647L /* 「long int」の最大値 */ #define ULONG_MAX 4294967295UL /* 「unsigned long int」の最大値 */ #define LLONG_MIN (-9223372036854775807LL-1LL) #define LLONG_MAX 9223372036854775807LL #define ULLONG_MAX 18446744073709551615ULL #define FLT_RADIX 2 #define FLT_MANT_DIG 24 #define DBL_MANT_DIG 53 #define LDBL_MANT_DIG 64 #if defined(__sparc) #define DECIMAL_DIG 36 #elif defined(__i386) #define DECIMAL_DIG 21 #endif #define FLT_DIG 6 #define DBL_DIG 15 #if defined(__sparc) #define LDBL_DIG 33 #elif defined(__i386) #define LDBL_DIG 18 #endif #define FLT_MIN_EXP (-125) #define DBL_MIN_EXP (-1021) #define LDBL_MIN_EXP (-16381) #define FLT_MIN_10_EXP (-37) #define DBL_MIN_10_EXP (-307) #define LDBL_MIN_10_EXP (-4931) #define FLT_MAX_EXP (+128) #define DBL_MAX_EXP (+1024) #define LDBL_MAX_EXP (+16384) #define FLT_EPSILON 1.192092896E-07F #define DBL_EPSILON 2.2204460492503131E-16 #if defined(__sparc) #define LDBL_EPSILON 1.925929944387235853055977942584927319E-34L #elif defined(__i386) #define LDBL_EPSILON 1.0842021724855044340075E-19L #endif #define FLT_MIN 1.175494351E-38F #define DBL_MIN 2.2250738585072014E-308 #if defined(__sparc) #define LDBL_MIN 3.362103143112093506262677817321752603E-4932L #elif defined(__i386) #define LDBL_MIN 3.3621031431120935062627E-4932L #endif
<limits.h> に指定されているマクロに対する値または式は次のとおりです。
#define INT8_MAX (127) #define INT16_MAX (32767) #define INT32_MAX (2147483647) #define INT64_MAX (9223372036854775807LL) #define INT8_MIN (-128) #define INT16_MIN (-32767-1) #define INT32_MIN (-2147483647-1) #define INT64_MIN (-9223372036854775807LL-1) #define UINT8_MAX (255U) #define UINT16_MAX (65535U) #define UINT32_MAX (4294967295U) #define UINT64_MAX (18446744073709551615ULL) #define INT_LEAST8_MIN INT8_MIN #define INT_LEAST16_MIN INT16_MIN #define INT_LEAST32_MIN INT32_MIN #define INT_LEAST64_MIN INT64_MIN #define INT_LEAST8_MAX INT8_MAX #define INT_LEAST16_MAX INT16_MAX #define INT_LEAST32_MAX INT32_MAX #define INT_LEAST64_MAX INT64_MAX #define UINT_LEAST8_MAX UINT8_MAX #define UINT_LEAST16_MAX UINT16_MAX #define UINT_LEAST32_MAX UINT32_MAX #define UINT_LEAST64_MAX UINT64_MAX
<stdint.h> に指定されているマクロに対する値または式は次のとおりです。
#define INT_FAST8_MIN INT8_MIN #define INT_FAST16_MIN INT16_MIN #define INT_FAST32_MIN INT32_MIN #define INT_FAST64_MIN INT64_MIN #define INT_FAST8_MAX INT8_MAX #define INT_FAST16_MAX INT16_MAX #define INT_FAST32_MAX INT32_MAX #define INT_FAST64_MAX INT64_MAX #define UINT_FAST8_MAX UINT8_MAX #define UINT_FAST16_MAX UINT16_MAX #define UINT_FAST32_MAX UINT32_MAX #define UINT_FAST64_MAX UINT64_MAX
(6.2.6.1) この国際規格に明示的に規定されていないオブジェクトのバイト数と順序、符号化方式。
1999 C 規格に明示的に規定されていないオブジェクトの処理系定義のバイト数と順序、符号化方式は、この章の別の場所で定義する必要があります。
(6.5.3.4) sizeof 演算子の結果の値。
次の表は、sizeof の結果をまとめています。
型 |
バイト単位のサイズ |
|
---|---|---|
char |
1 |
|
short |
2 |
|
int |
4 |
|
long |
4 |
|
long v9 |
8 |
|
long long |
8 |
|
float |
4 |
|
double |
8 |
|
long double (SPARC) |
16 |
|
long double (x86) |
12 |
|
pointer |
4 |
|
pointer v9 |
8 |
|
_Complex float |
8 |
|
_Complex double |
16 |
|
_Complex long double |
32 |
|
_Imaginary float |
4 |
|
_Imaginary double |
8 |
|
_Imaginary long double (SPARC) |
16 |
|
_Imaginary long double (x86) |
12 |