411 REFERENCE · Wikibooks
C programming/limits.h
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
limits.h includes definitions of the characteristics of common variable types. The values are implementation specific, but may not be of lower magnitude than certain specified values in a conforming C implementation.
The C99 standard also specifies the <stdint.h> header file, which provides names and limits for explicitly-sized platform-independent integer datatypes (e.g. int32_t for a 32-bit signed integer).
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.
Name Description Typical value ANSI standard minimum-or maximum magnitude valueCHAR_BIT Number of bits in a char 8 ≥+8SCHAR_MIN Minimum value for a signed char −128 ≤−127SCHAR_MAX Maximum value for a signed char +127 ≥+127UCHAR_MAX Maximum value for an unsigned char +255 ≥+255CHAR_MIN Minimum value for a char −128 ≤−127(if char is represented as asigned char; otherwise ≤0)CHAR_MAX Maximum value for a char +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 ≥+1SHRT_MIN Minimum value for a short int −32,768 ≤−32,767SHRT_MAX Maximum value for a short int +32,767 ≥+32,767USHRT_MAX Maximum value for an unsigned short int +65,535 ≥+65,535INT_MIN Minimum value for an int 16 bit compiler -32768 or −2,147,483,648 ≤−32,767 32 or 64 bit compiler −2,147,483,648INT_MAX Maximum value for an int 16 bit compiler +32,767 or +2,147,483,647 ≥+32,767 32 or 64 bit compiler +2,147,483,647UINT_MAX Maximum value for an unsigned int 16 bit compiler +65,535 or +4,294,967,295 ≥+65,535 32 or 64 bit compiler +4,294,967,295LONG_MIN Minimum value for a long int 16 or 32 bit compiler −2,147,483,648 ≤−2,147,483,647 64 bit compiler −2,147,483,648 or −9,223,372,036,854,775,808LONG_MAX Maximum value for a long int 16 or 32 bit compiler +2,147,483,647 ≥+2,147,483,647 64 bit compiler +2,147,483,647 or +9,223,372,036,854,775,807ULONG_MAX Maximum value for an unsigned long int 16 or 32 bit compiler +4,294,967,295 ≥+4,294,967,295 64 bit compiler +4,294,967,295 or +18,446,744,073,709,551,615LLONG_MIN Minimum value for a long long int −9,223,372,036,854,775,808 ≤−9,223,372,036,854,775,807LLONG_MAX Maximum value for a long long int +9,223,372,036,854,775,807 ≥+9,223,372,036,854,775,807ULLONG_MAX Maximum value for an unsigned long long int +18,446,744,073,709,551,615 ≥+18,446,744,073,709,551,615
References
C Guide--2.5 limits.h, accessed on September 2006.
External links
C++ reference for implementation defined numeric constants inherited from C