The values or expressions assigned to the macros specified in the headers <float.h>, <limits.h>, and <stdint.h> (5.2.4.2, 7.18.2, 7.18.3).
Here are the values or expressions for the macros specified in <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
Here are the values or expressions for the macros specified in <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
Here are the values or expressions for the macros specified in <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
The number, order, and encoding of bytes in any object (when not explicitly specified in this International Standard) (6.2.6.1).
The implementation-defined number, order, and encodings of objects not explicitly specified in the 1999 C standard have be defined elsewhere in this chapter.
The value of the result of the sizeof operator (6.5.3.4).
The following table lists the results for sizeof.
Type |
Size in Bytes |
|
---|---|---|
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 |