home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c221 / 6.ddi / MWHC.006 / I < prev    next >
Encoding:
Text File  |  1992-12-09  |  2.1 KB  |  84 lines

  1. /*
  2.  *   limits.h -- ANSI 
  3.  *
  4.  *   Constants that constrain the representation of numerical values.
  5.  *
  6.  *           Copyright (c) 1990, MetaWare Incorporated
  7.  */
  8.  
  9. #ifndef _LIMITS_H
  10. #define _LIMITS_H    
  11.  
  12. #ifdef __CPLUSPLUS__
  13. extern "C" {
  14. #endif
  15.  
  16. /* number of bits for smallest object (byte) */
  17. #define CHAR_BIT                         8
  18.  
  19. #if  _I860 || (_I386 && _ATT4)
  20. #    define __SIGNED_CHARS 1
  21. #else
  22. #    define __SIGNED_CHARS 0
  23. #endif
  24.  
  25. /* maximum value for an object of type char */
  26. #define CHAR_MAX ('\xff' > 0 ? 255 : 127)
  27.  
  28. /* minimum value for an object of type char */
  29. #define CHAR_MIN ('\xff' > 0 ? 0 : -128)
  30.  
  31. /* maximum value for an object of type signed char */
  32. #define SCHAR_MAX                     +127
  33.  
  34. /* minimum value for an object of type signed char */
  35. #define SCHAR_MIN                     -128
  36.  
  37. /* maximum value for an object of type unsigned char */
  38. #define UCHAR_MAX                      255
  39.  
  40. /* maximum number of bytes in a multibyte character */
  41. #if (defined(_AIX) && defined(_I386)) || defined(_IBM370)
  42. #define MB_LEN_MAX             4
  43. #else
  44. #define MB_LEN_MAX             1
  45. #endif
  46.  
  47. /* maximum value for an object of type short */
  48. #define SHRT_MAX                    +32767
  49.  
  50. /* minimum value for an object of type short */
  51. #define SHRT_MIN                    -32768
  52.  
  53. /* maximum value for an object of type unsigned short */
  54. #define USHRT_MAX                    65535 
  55.  
  56.  
  57. /* maximum value for an object of type int */
  58. #define INT_MAX                 +2147483647 
  59.  
  60. /* minimum value for an object of type int */
  61. #define INT_MIN                ((int)-2147483648)
  62.  
  63. /* maximum value for an object of type unsigned int */
  64. #define UINT_MAX                4294967295U
  65.  
  66.  
  67. /* maximum value for an object of type long */
  68. #define LONG_MAX               +2147483647L
  69.  
  70. /* minimum value for an object of type long */
  71. #define LONG_MIN               ((long)-2147483648L)
  72.  
  73. /* maximum value for an object of type unsigned long */
  74. #if _NAM
  75. #define ULONG_MAX        0x7fffffffL
  76. #else
  77. #define ULONG_MAX               4294967295UL
  78. #endif
  79.  
  80. #ifdef __CPLUSPLUS__
  81. }
  82. #endif
  83. #endif /*_LIMITS_H*/
  84.