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