limits.h is the header of the general purpose standard library of C programming language which includes definitions of the characteristics of variable types. The values are implementation specific, but may not be of lower magnitude than certain specified values in a conforming C implementation.
Member constants
The "minimum-magnitude value" column is the minimum possible magnitude for this constant as specified by the standard. In particular, _MIN values represent the minimum magnitude representable in the rarely-used one's complement and sign-magnitude forms. Most implementations will have larger magnitudes for at least some of these numbers. For instance:
- Two's complement implementations have
SCHAR_MIN equal to –128 (and similarly for all other _MIN values).
- 32-bit implementations will set
INT_MAX equal to +2,147,483,647 (and likewise for INT_MIN and UINT_MAX)
- Unicode-supporting implementations will set
MB_LEN_MAX to 4 or more.
- Many DSPs have
CHAR_BIT equal to 16 or more[1][2].
| Name |
Description |
Typical value on a 32 bit
executable/compiler
(ca. 1995 until now) |
Typical value on a 64 bit
executable/compiler
(ca. 2008(?)) |
ANSI standard minimum-
or maximum magnitude value |
CHAR_BIT |
Number of bits in a byte |
8 |
8 |
≥ 8 |
SCHAR_MIN |
Minimum value for a signed char |
–128 |
–128 |
≤ –127 |
SCHAR_MAX |
Maximum value for a signed char |
+127 |
+127 |
≥ +127 |
UCHAR_MAX |
Maximum value for an unsigned char |
+255 |
+255 |
≥ +255 |
CHAR_MIN |
Minimum value for a char |
–128 |
–128 |
≤ –127
(if char is represented as a
signed char; otherwise 0) |
CHAR_MAX |
Maximum value for a char |
+127 |
+127 |
≥ +127
(if char is represented as a
signed char; otherwise +255) |
MB_LEN_MAX |
Maximum multi byte length of a character across all locales |
varies, usually at least 4 |
varies, usually at least 4 |
≥ 1 |
SHRT_MIN |
Minimum value for a short int |
–32,768 |
–32,768 |
≤ –32,767 |
SHRT_MAX |
Maximum value for a short int |
+32,767 |
+32,767 |
≥ +32,767 |
USHRT_MAX |
Maximum value for an unsigned short int |
+65,535 |
+65,535 |
≥ +65,535 |
INT_MIN |
Minimum value for an int |
–2,147,483,648 |
–2,147,483,648 |
≤ –32,767 |
INT_MAX |
Maximum value for an int |
+2,147,483,647 |
+2,147,483,647 |
≥ +32,767 |
UINT_MAX |
Maximum value for an unsigned int |
+4,294,967,295 |
+4,294,967,295 |
≥ +65,535 |
LONG_MIN |
Minimum value for a long int |
–2,147,483,648 |
–9,223,372,036,854,775,808 |
≤ –2,147,483,647 |
LONG_MAX |
Maximum value for a long int |
+2,147,483,647 |
+9,223,372,036,854,775,807 |
≥ +2,147,483,647 |
ULONG_MAX |
Maximum value for an unsigned long int |
+4,294,967,295 |
+18,446,744,073,709,551,615 |
≥ +4,294,967,295 |
LLONG_MIN |
Minimum value for a long long int |
–9,223,372,036,854,775,808 |
–9,223,372,036,854,775,808 |
≤ -9,223,372,036,854,775,807 |
LLONG_MAX |
Maximum value for a long long int |
+9,223,372,036,854,775,807 |
+9,223,372,036,854,775,807 |
≥ +9,223,372,036,854,775,807 |
ULLONG_MAX |
Maximum value for an unsigned long long int |
+18,446,744,073,709,551,615 |
+18,446,744,073,709,551,615 |
≥ +18,446,744,073,709,551,615 |
See also
External links
- Enquire: A program for automatically generating limits.h, and for checking that the values in an existing limits.h are correct
References
|