home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / limits.h < prev    next >
C/C++ Source or Header  |  1998-06-16  |  4KB  |  119 lines

  1. /***
  2. *limits.h - implementation dependent values
  3. *
  4. *       Copyright (c) 1985-1997, Microsoft Corporation.  All rights reserved.
  5. *
  6. *Purpose:
  7. *       Contains defines for a number of implementation dependent values
  8. *       which are commonly used in C programs.
  9. *       [ANSI]
  10. *
  11. *       [Public]
  12. *
  13. ****/
  14.  
  15. #if     _MSC_VER > 1000
  16. #pragma once
  17. #endif
  18.  
  19. #ifndef _INC_LIMITS
  20. #define _INC_LIMITS
  21.  
  22. #if     !defined(_WIN32) && !defined(_MAC)
  23. #error ERROR: Only Mac or Win32 targets supported!
  24. #endif
  25.  
  26.  
  27. #define CHAR_BIT      8         /* number of bits in a char */
  28. #define SCHAR_MIN   (-128)      /* minimum signed char value */
  29. #define SCHAR_MAX     127       /* maximum signed char value */
  30. #define UCHAR_MAX     0xff      /* maximum unsigned char value */
  31.  
  32. #ifndef _CHAR_UNSIGNED
  33. #define CHAR_MIN    SCHAR_MIN   /* mimimum char value */
  34. #define CHAR_MAX    SCHAR_MAX   /* maximum char value */
  35. #else
  36. #define CHAR_MIN      0
  37. #define CHAR_MAX    UCHAR_MAX
  38. #endif  /* _CHAR_UNSIGNED */
  39.  
  40. #define MB_LEN_MAX    2             /* max. # bytes in multibyte char */
  41. #define SHRT_MIN    (-32768)        /* minimum (signed) short value */
  42. #define SHRT_MAX      32767         /* maximum (signed) short value */
  43. #define USHRT_MAX     0xffff        /* maximum unsigned short value */
  44. #define INT_MIN     (-2147483647 - 1) /* minimum (signed) int value */
  45. #define INT_MAX       2147483647    /* maximum (signed) int value */
  46. #define UINT_MAX      0xffffffff    /* maximum unsigned int value */
  47. #define LONG_MIN    (-2147483647L - 1) /* minimum (signed) long value */
  48. #define LONG_MAX      2147483647L   /* maximum (signed) long value */
  49. #define ULONG_MAX     0xffffffffUL  /* maximum unsigned long value */
  50.  
  51. #if     _INTEGRAL_MAX_BITS >= 8
  52. #define _I8_MIN     (-127i8 - 1)    /* minimum signed 8 bit value */
  53. #define _I8_MAX       127i8         /* maximum signed 8 bit value */
  54. #define _UI8_MAX      0xffui8       /* maximum unsigned 8 bit value */
  55. #endif
  56.  
  57. #if     _INTEGRAL_MAX_BITS >= 16
  58. #define _I16_MIN    (-32767i16 - 1) /* minimum signed 16 bit value */
  59. #define _I16_MAX      32767i16      /* maximum signed 16 bit value */
  60. #define _UI16_MAX     0xffffui16    /* maximum unsigned 16 bit value */
  61. #endif
  62.  
  63. #if     _INTEGRAL_MAX_BITS >= 32
  64. #define _I32_MIN    (-2147483647i32 - 1) /* minimum signed 32 bit value */
  65. #define _I32_MAX      2147483647i32 /* maximum signed 32 bit value */
  66. #define _UI32_MAX     0xffffffffui32 /* maximum unsigned 32 bit value */
  67. #endif
  68.  
  69. #if     _INTEGRAL_MAX_BITS >= 64
  70. /* minimum signed 64 bit value */
  71. #define _I64_MIN    (-9223372036854775807i64 - 1)
  72. /* maximum signed 64 bit value */
  73. #define _I64_MAX      9223372036854775807i64
  74. /* maximum unsigned 64 bit value */
  75. #define _UI64_MAX     0xffffffffffffffffui64
  76. #endif
  77.  
  78. #if     _INTEGRAL_MAX_BITS >= 128
  79. /* minimum signed 128 bit value */
  80. #define _I128_MIN   (-170141183460469231731687303715884105727i128 - 1)
  81. /* maximum signed 128 bit value */
  82. #define _I128_MAX     170141183460469231731687303715884105727i128
  83. /* maximum unsigned 128 bit value */
  84. #define _UI128_MAX    0xffffffffffffffffffffffffffffffffui128
  85. #endif
  86.  
  87. #ifdef  _POSIX_
  88.  
  89. #define _POSIX_ARG_MAX      4096
  90. #define _POSIX_CHILD_MAX    6
  91. #define _POSIX_LINK_MAX     8
  92. #define _POSIX_MAX_CANON    255
  93. #define _POSIX_MAX_INPUT    255
  94. #define _POSIX_NAME_MAX     14
  95. #define _POSIX_NGROUPS_MAX  0
  96. #define _POSIX_OPEN_MAX     16
  97. #define _POSIX_PATH_MAX     255
  98. #define _POSIX_PIPE_BUF     512
  99. #define _POSIX_SSIZE_MAX    32767
  100. #define _POSIX_STREAM_MAX   8
  101. #define _POSIX_TZNAME_MAX   3
  102.  
  103. #define ARG_MAX             14500       /* 16k heap, minus overhead */
  104. #define LINK_MAX            1024
  105. #define MAX_CANON           _POSIX_MAX_CANON
  106. #define MAX_INPUT           _POSIX_MAX_INPUT
  107. #define NAME_MAX            255
  108. #define NGROUPS_MAX         16
  109. #define OPEN_MAX            32
  110. #define PATH_MAX            512
  111. #define PIPE_BUF            _POSIX_PIPE_BUF
  112. #define SSIZE_MAX           _POSIX_SSIZE_MAX
  113. #define STREAM_MAX          20
  114. #define TZNAME_MAX          10
  115.  
  116. #endif  /* POSIX */
  117.  
  118. #endif  /* _INC_LIMITS */
  119.