limits.h
Appearance
C standard library (libc) |
---|
General topics |
Miscellaneous headers |
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 forINT_MIN
andUINT_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 asigned char ; otherwise 0)
|
CHAR_MAX |
Maximum value for a char | +127 | +127 | ≥ +127 (if char is represented as asigned 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
- C standard library
- Float.h - Limits on floating-point numbers
External links
- Enquire: A program for automatically generating limits.h, and for checking that the values in an existing limits.h are correct
References
- C Guide--2.5 limits.h, accessed in September 2006.