(5.2.4.2, 7.18.2, 7.18.3) ヘッダーの <float.h>、<limits.h>、および <stdint.h> に指定されているマクロに割り当てられている値または式。
<float.h> に指定されているマクロに対する値または式は次のとおりです。
#define CHAR_BIT 8 /* max # of bits in a “char” */ #define SCHAR_MIN (-128) /* min value of a “signed char” */ #define SCHAR_MAX 127 /* max value of a “signed char” */ #define CHAR_MIN SCHAR_MIN /* min value of a “char” */ #define CHAR_MAX SCHAR_MAX /* max value of a “char” */ #define MB_LEN_MAX 5 #define SHRT_MIN (-32768) /* min value of a “short int” */ #define SHRT_MAX 32767 /* max value of a “short int” */ #define USHRT_MAX 65535 /* max value of “unsigned short int” */ #define INT_MIN (-2147483647-1) /* min value of an “int” */ #define INT_MAX 2147483647 /* max value of an “int” */ #define UINT_MAX 4294967295U /* max value of an “unsigned int” */ #define LONG_MIN (-2147483647L-1L) #define LONG_MAX 2147483647L /* max value of a “long int” */ #define ULONG_MAX 4294967295UL /* max value of “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 と _Bool |
1 |
short |
2 |
int |
4 |
long |
4 |
long -m64 |
8 |
long long |
8 |
float |
4 |
double |
8 |
long double (SPARC) |
16 |
long double (x86) -m32 |
12 |
long double (x86) -m64 |
16 |
pointer |
4 |
pointer -m64 |
8 |
_Complex float |
8 |
_Complex double |
16 |
_Complex long double (SPARC) |
32 |
_Complex long double (x86) -m32 |
24 |
_Complex long double (x86) -m64 |
32 |
_Imaginary float |
4 |
_Imaginary double |
8 |
_Imaginary long double (SPARC) |
16 |
_Imaginary long double (x86) -m32 |
12 |
_Imaginary long double (x86) -m64 |
16 |