This source file includes following definitions.
- llabs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #ifndef _MSC_VER
33 #error "Use this header only with Microsoft Visual C++ compilers!"
34 #endif
35
36
37
38 #if _MSC_VER < 1900
39
40 #ifndef _MSC_STDINT_H_
41 #define _MSC_STDINT_H_
42
43 #ifndef _STDINT
44 # define _STDINT
45 #endif
46
47 #if _MSC_VER > 1000
48 #pragma once
49 #endif
50
51 #include <limits.h>
52
53
54
55
56 #if (_MSC_VER < 1300) && defined(__cplusplus)
57 extern "C++" {
58 #endif
59 # include <wchar.h>
60 #if (_MSC_VER < 1300) && defined(__cplusplus)
61 }
62 #endif
63
64
65 #ifndef _W64
66 # if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
67 # define _W64 __w64
68 # else
69 # define _W64
70 # endif
71 #endif
72
73
74
75
76
77 #ifndef int8_t
78 typedef __int8 int8_t;
79 #endif
80 #ifndef int16_t
81 typedef __int16 int16_t;
82 #endif
83 #ifndef int32_t
84 typedef __int32 int32_t;
85 #endif
86 #ifndef int64_t
87 typedef __int64 int64_t;
88 #endif
89 #ifndef uint8_t
90 typedef unsigned __int8 uint8_t;
91 #endif
92 typedef unsigned __int16 uint16_t;
93 #ifndef uint32_t
94 typedef unsigned __int32 uint32_t;
95 #endif
96 typedef unsigned __int64 uint64_t;
97
98
99 typedef int8_t int_least8_t;
100 typedef int16_t int_least16_t;
101 typedef int32_t int_least32_t;
102 typedef int64_t int_least64_t;
103 typedef uint8_t uint_least8_t;
104 typedef uint16_t uint_least16_t;
105 typedef uint32_t uint_least32_t;
106 typedef uint64_t uint_least64_t;
107
108
109 typedef int8_t int_fast8_t;
110 typedef int16_t int_fast16_t;
111 typedef int32_t int_fast32_t;
112 typedef int64_t int_fast64_t;
113 typedef uint8_t uint_fast8_t;
114 typedef uint16_t uint_fast16_t;
115 typedef uint32_t uint_fast32_t;
116 typedef uint32_t u_int32_t;
117 typedef uint64_t uint_fast64_t;
118
119
120
121 #include <stddef.h>
122
123
124 typedef int64_t intmax_t;
125 typedef uint64_t uintmax_t;
126
127
128
129
130 #if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
131
132
133 #if _MSC_VER >= 1700 && !defined(_INTSAFE_H_INCLUDED_)
134 #define INT8_MIN ((int8_t)_I8_MIN)
135 #define INT8_MAX _I8_MAX
136 #define INT16_MIN ((int16_t)_I16_MIN)
137 #define INT16_MAX _I16_MAX
138 #define INT32_MIN ((int32_t)_I32_MIN)
139 #define INT32_MAX _I32_MAX
140 #define INT64_MIN ((int64_t)_I64_MIN)
141 #define INT64_MAX _I64_MAX
142 #define UINT8_MAX _UI8_MAX
143 #define UINT16_MAX _UI16_MAX
144 #define UINT32_MAX _UI32_MAX
145 #define UINT64_MAX _UI64_MAX
146 #endif
147
148
149 #define INT_LEAST8_MIN INT8_MIN
150 #define INT_LEAST8_MAX INT8_MAX
151 #define INT_LEAST16_MIN INT16_MIN
152 #define INT_LEAST16_MAX INT16_MAX
153 #define INT_LEAST32_MIN INT32_MIN
154 #define INT_LEAST32_MAX INT32_MAX
155 #define INT_LEAST64_MIN INT64_MIN
156 #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
161
162
163 #define INT_FAST8_MIN INT8_MIN
164 #define INT_FAST8_MAX INT8_MAX
165 #define INT_FAST16_MIN INT16_MIN
166 #define INT_FAST16_MAX INT16_MAX
167 #define INT_FAST32_MIN INT32_MIN
168 #define INT_FAST32_MAX INT32_MAX
169 #define INT_FAST64_MIN INT64_MIN
170 #define INT_FAST64_MAX INT64_MAX
171 #define UINT_FAST8_MAX UINT8_MAX
172 #define UINT_FAST16_MAX UINT16_MAX
173 #define UINT_FAST32_MAX UINT32_MAX
174 #define UINT_FAST64_MAX UINT64_MAX
175
176
177 #ifdef _WIN64
178 # define INTPTR_MIN INT64_MIN
179 # define INTPTR_MAX INT64_MAX
180 # define UINTPTR_MAX UINT64_MAX
181 #else
182 # define INTPTR_MIN INT32_MIN
183 # define INTPTR_MAX INT32_MAX
184 # define UINTPTR_MAX UINT32_MAX
185 #endif
186
187
188 #define INTMAX_MIN INT64_MIN
189 #define INTMAX_MAX INT64_MAX
190 #define UINTMAX_MAX UINT64_MAX
191
192
193
194 #ifdef _WIN64
195 # define PTRDIFF_MIN _I64_MIN
196 # define PTRDIFF_MAX _I64_MAX
197 #else
198 # define PTRDIFF_MIN _I32_MIN
199 # define PTRDIFF_MAX _I32_MAX
200 #endif
201
202 #define SIG_ATOMIC_MIN INT_MIN
203 #define SIG_ATOMIC_MAX INT_MAX
204
205 #ifndef SIZE_MAX
206 # ifdef _WIN64
207 # define SIZE_MAX _UI64_MAX
208 # else
209 # define SIZE_MAX _UI32_MAX
210 # endif
211 #endif
212
213
214 #ifndef WCHAR_MIN
215 # define WCHAR_MIN 0
216 #endif
217 #ifndef WCHAR_MAX
218 # define WCHAR_MAX _UI16_MAX
219 #endif
220
221 #define WINT_MIN 0
222 #define WINT_MAX _UI16_MAX
223
224 #endif
225
226
227
228
229 #if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
230
231
232
233 #define INT8_C(val) val##i8
234 #define INT16_C(val) val##i16
235 #define INT32_C(val) val##i32
236 #define INT64_C(val) val##i64
237
238 #define UINT8_C(val) val##ui8
239 #define UINT16_C(val) val##ui16
240 #define UINT32_C(val) val##ui32
241 #define UINT64_C(val) val##ui64
242
243
244 #define INTMAX_C INT64_C
245 #define UINTMAX_C UINT64_C
246
247 #if _MSC_VER < 1600
248 static __inline int64_t llabs(int64_t i)
249 {
250 return i >= 0 ? i: -i;
251 }
252 #endif
253
254 #endif
255
256
257 #endif
258
259 #else
260 #include <stdint.h>
261 #endif
262
263 #ifndef u_char
264 typedef unsigned __int8 u_char;
265 #endif