Value Ranges of Integer Types
The value ranges of the integer types are documented in the header file limits.h . The constants, listed in Table 1-25, indicate the largest and smallest values that can be represented by the given type.
|
Type |
Minimum |
Maximum |
Maximum of the unsigned type |
char |
CHAR_MIN |
CHAR_MAX |
UCHAR_MAX |
signed char |
SCHAR_MIN |
SCHAR_MAX | |
short |
SHRT_MIN |
SHRT_MAX |
USHRT_MAX |
int |
INT_MIN |
INT_MAX |
UINT_MAX |
long |
LONG_MIN |
LONG_MAX |
ULONG_MAX |
long long(*) |
LLONG_MIN(*) |
LLONG_MAX(*) |
ULLONG_MAX(*) |
If char is interpreted as signed, then
CHAR_MIN is equal to SCHAR_MIN
and CHAR_MAX is equal to
SCHAR_MAX. If not, then
CHAR_MIN is equal to 0 and
CHAR_MAX is equal to UCHAR_MAX.
In addition to the constants listed in Table 1-25, limits.h also contains the following:
-
CHAR_BIT The number of bits in a byte (usually 8)
-
MB_LEN_MAX The maximum number of bytes in a multibyte character
In the header file
stdint.h
(*),
constants are also defined to document the minimum and maximum values
of the types wchar_t, wint_t,
size_t, ptrdiff_t, and
sig_atomic_t, and of the
fixed-width integer types, such as
int_least32_t. The names of these constants are
formed from the type names as follows: the type name is written all
in capital letters, and the suffix _t is replaced
by _MIN or _MAX. For example:
WCHAR_MIN // Minimum value of wchar_t INT_LEAST32_MAX // Maximum value of int_least32_t
For the unsigned types only the
..._MAX constants ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access