49 #define __need_wchar_t
53 #if _MSC_VER && (_MSC_VER < 1300)
55 #define __STDINT_LONGLONG __int64
56 #define __STDINT_LONGLONG_SUFFIX i64
58 #define __STDINT_LONGLONG long long
59 #define __STDINT_LONGLONG_SUFFIX LL
62 #if !defined(__MSSTDINT_PASTE)
63 #define __MSSTDINT_PASTE2(x, y) x##y
64 #define __MSSTDINT_PASTE(x, y) __MSSTDINT_PASTE2(x, y)
68 typedef signed char int8_t;
69 typedef unsigned char uint8_t;
70 typedef short int16_t;
71 typedef unsigned short uint16_t;
73 typedef unsigned uint32_t;
74 typedef __STDINT_LONGLONG int64_t;
75 typedef unsigned __STDINT_LONGLONG uint64_t;
78 typedef signed char int_least8_t;
79 typedef unsigned char uint_least8_t;
80 typedef short int_least16_t;
81 typedef unsigned short uint_least16_t;
82 typedef int int_least32_t;
83 typedef unsigned uint_least32_t;
84 typedef __STDINT_LONGLONG int_least64_t;
85 typedef unsigned __STDINT_LONGLONG uint_least64_t;
91 typedef char int_fast8_t;
92 typedef unsigned char uint_fast8_t;
93 typedef short int_fast16_t;
94 typedef unsigned short uint_fast16_t;
95 typedef int int_fast32_t;
96 typedef unsigned int uint_fast32_t;
97 typedef __STDINT_LONGLONG int_fast64_t;
98 typedef unsigned __STDINT_LONGLONG uint_fast64_t;
101 #ifndef _INTPTR_T_DEFINED
102 #define _INTPTR_T_DEFINED
104 typedef __STDINT_LONGLONG intptr_t
106 typedef int intptr_t;
110 #ifndef _UINTPTR_T_DEFINED
111 #define _UINTPTR_T_DEFINED
113 typedef unsigned __STDINT_LONGLONG uintptr_t
115 typedef unsigned int uintptr_t;
120 typedef __STDINT_LONGLONG intmax_t;
121 typedef unsigned __STDINT_LONGLONG uintmax_t;
124 #if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
127 #define INT8_MIN (-128)
128 #define INT16_MIN (-32768)
129 #define INT32_MIN (-2147483647 - 1)
131 (__MSSTDINT_PASTE(-9223372036854775807, __STDINT_LONGLONG_SUFFIX) - 1)
134 #define INT16_MAX 32767
135 #define INT32_MAX 2147483647
137 (__MSSTDINT_PASTE(9223372036854775807, __STDINT_LONGLONG_SUFFIX))
139 #define UINT8_MAX 0xff
140 #define UINT16_MAX 0xffff
141 #define UINT32_MAX 0xffffffff
143 (__MSSTDINT_PASTE(0xffffffffffffffffU, \
144 __STDINT_LONGLONG_SUFFIX))
147 #define INT_LEAST8_MIN INT8_MIN
148 #define INT_LEAST16_MIN INT16_MIN
149 #define INT_LEAST32_MIN INT32_MIN
150 #define INT_LEAST64_MIN INT64_MIN
152 #define INT_LEAST8_MAX INT8_MAX
153 #define INT_LEAST16_MAX INT16_MAX
154 #define INT_LEAST32_MAX INT32_MAX
155 #define INT_LEAST64_MAX INT64_MAX
157 #define UINT_LEAST8_MAX UINT8_MAX
158 #define UINT_LEAST16_MAX UINT16_MAX
159 #define UINT_LEAST32_MAX UINT32_MAX
160 #define UINT_LEAST64_MAX UINT64_MAX
163 #define INT_FAST8_MIN INT8_MIN
164 #define INT_FAST16_MIN INT16_MIN
165 #define INT_FAST32_MIN INT32_MIN
166 #define INT_FAST64_MIN INT64_MIN
168 #define INT_FAST8_MAX INT8_MAX
169 #define INT_FAST16_MAX INT16_MAX
170 #define INT_FAST32_MAX INT32_MAX
171 #define INT_FAST64_MAX INT64_MAX
173 #define UINT_FAST8_MAX UINT8_MAX
174 #define UINT_FAST16_MAX UINT16_MAX
175 #define UINT_FAST32_MAX UINT32_MAX
176 #define UINT_FAST64_MAX UINT64_MAX
181 #define INTPTR_MIN INT64_MIN
182 #define INTPTR_MAX INT64_MAX
183 #define UINTPTR_MAX UINT64_MAX
185 #define INTPTR_MIN INT32_MIN
186 #define INTPTR_MAX INT32_MAX
187 #define UINTPTR_MAX UINT32_MAX
191 #define INTMAX_MIN INT64_MIN
192 #define INTMAX_MAX INT64_MAX
193 #define UINTMAX_MAX UINT64_MAX
196 #define PTRDIFF_MIN INTPTR_MIN
197 #define PTRDIFF_MAX INTPTR_MAX
199 #define SIG_ATOMIC_MIN INTPTR_MIN
200 #define SIG_ATOMIC_MAX INTPTR_MAX
205 #define SIZE_MAX UINTPTR_MAX
210 #define WCHAR_MAX ((wchar_t)-1)
217 #define WINT_MAX ((wint_t)-1)
222 #if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
237 #define INT8_C(val) ((int8_t) + (val))
238 #define UINT8_C(val) ((uint8_t) + (val##U))
239 #define INT16_C(val) ((int16_t) + (val))
240 #define UINT16_C(val) ((uint16_t) + (val##U))
242 #define INT32_C(val) val##L
243 #define UINT32_C(val) val##UL
244 #define INT64_C(val) (__MSSTDINT_PASTE(val, __STDINT_LONGLONG_SUFFIX))
245 #define UINT64_C(val) \
246 (__MSSTDINT_PASTE(__MSSTDINT_PASTE(val, U), __STDINT_LONGLONG_SUFFIX))
249 #define INTMAX_C(val) INT64_C(val)
250 #define UINTMAX_C(val) UINT64_C(val)
254 #undef __MSSTDINT_PASTE
255 #undef __MSSTDINT_PASTE2