Jump to content

limits.h

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 64.88.210.2 (talk) at 00:38, 22 August 2008. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

limits.h is the header of the general purpose standard library of the C programming language which 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.

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

  • Enquire: A program for automatically generating limits.h, and for checking that the values in an existing limits.h are correct

References