13.8 <climits> 
  The  <climits>  header (from the C standard <  limits.h>  header) defines parameters that characterize integral types in the same way  <cfloat>  does for the floating point types. The native C++ header,  <limits>  , defines the same information (and more) using templates instead of macros. 
  
 
  The types used in the descriptions of the  _MIN  and  _MAX  macros are meant as reminders and are not descriptive of the actual types of the macro expansions. The actual types are implementation-defined and can be any integral type that would be the result of normal integral promotions for the corresponding typee.g., if  unsigned   char  is promoted to  int  ,  UCHAR_MAX  might have type  int  . 
  All of the macros in  <climits>  expand to constant expressions. 
    |    CHAR_BIT macro    |    Bits per character   |  
  
 
   Number of bits per character. The value is always at least 8. 
    |    CHAR_MAX macro    |    Maximum char value   |  
  
 
   Maximum value for the  char  type. (Remember that the  char  type is the same as either  signed   char  or  unsigned   char  , so  CHAR_MAX  has the same value as  SCHAR_MAX  or  UCHAR_MAX  .) 
  See Also 
   WCHAR_MAX  in  <cwchar>  
    |    CHAR_MIN macro    |    Minimum char value   |  
  
 
   Minimum value for the  char  type (the same value as  SCHAR_MIN  or   ). 
  See Also 
   WCHAR_MIN  in  <cwchar>  
    |    INT_MAX macro    |    Maximum int value   |  
  
 
   Maximum value for the  int  type. The value is always at least 32,767. 
    |    INT_MIN macro    |    Minimum int value   |  
  
 
   Minimum value for the  int  type. The value is always less than or equal to -32,767. 
    |    LONG_MAX macro    |    Maximum long value   |  
  
 
   Maximum value for the  long   int  type. The value is always at least 2,147,483,647. 
    |    LONG_MIN macro    |    Minimum long value   |  
  
 
   Minimum value for the  long   int  type. The value is always less than or equal to -2,147,483,647. 
    |    MB_LEN_MAX macro    |    Maximum bytes in a multibyte character   |  
  
 
   Maximum number of bytes in any multibyte character, in any locale. The value is always at least 1. 
    |    SCHAR_MAX macro    |    Maximum signed char value   |  
  
 
   Maximum value for the  signed   char  type. The value is always at least 127. 
    |    SCHAR_MIN macro    |    Minimum signed char value   |  
  
 
   Minimum value for the  signed   char  type. The value is always less than or equal to -127. 
    |    SHRT_MAX macro    |    Maximum short value   |  
  
 
   Maximum value for the  short  type. The value is always at least 32,767. 
    |    SHRT_MIN macro    |    Minimum short value   |  
  
 
   Minimum value for the  short  type. The value is always less than or equal to -32,767. 
    |    UCHAR_MAX macro    |    Maximum unsigned char value   |  
  
 
   Maximum value for the  unsigned   char  type. The value is always at least 255. 
    |    UINT_MAX macro    |    Maximum unsigned int value   |  
  
 
   Maximum value for the  unsigned   int  type. The value is always at least 65,535. 
    |    ULONG_MAX macro    |    Maximum unsigned long value   |  
  
 
   Maximum value for the  unsigned   long  type. The value is always at least 4,294,967,295. 
    |    USHRT_MAX macro    |    Maximum unsigned short value   |  
  
 
   Maximum value for the  unsigned   short  type. The value is always at least 65,535.