38#error "Use this header only with Microsoft Visual C++ compilers!"
41#ifndef _MSC_INTTYPES_H_
42#define _MSC_INTTYPES_H_
64#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS)
76#define PRIdLEAST16 "hd"
77#define PRIiLEAST16 "hi"
78#define PRIdFAST16 "hd"
79#define PRIiFAST16 "hi"
83#define PRIdLEAST32 "I32d"
84#define PRIiLEAST32 "I32i"
85#define PRIdFAST32 "I32d"
86#define PRIiFAST32 "I32i"
90#define PRIdLEAST64 "I64d"
91#define PRIiLEAST64 "I64i"
92#define PRIdFAST64 "I64d"
93#define PRIiFAST64 "I64i"
106#define PRIoLEAST8 "o"
107#define PRIuLEAST8 "u"
108#define PRIxLEAST8 "x"
109#define PRIXLEAST8 "X"
119#define PRIoLEAST16 "ho"
120#define PRIuLEAST16 "hu"
121#define PRIxLEAST16 "hx"
122#define PRIXLEAST16 "hX"
123#define PRIoFAST16 "ho"
124#define PRIuFAST16 "hu"
125#define PRIxFAST16 "hx"
126#define PRIXFAST16 "hX"
132#define PRIoLEAST32 "I32o"
133#define PRIuLEAST32 "I32u"
134#define PRIxLEAST32 "I32x"
135#define PRIXLEAST32 "I32X"
136#define PRIoFAST32 "I32o"
137#define PRIuFAST32 "I32u"
138#define PRIxFAST32 "I32x"
139#define PRIXFAST32 "I32X"
145#define PRIoLEAST64 "I64o"
146#define PRIuLEAST64 "I64u"
147#define PRIxLEAST64 "I64x"
148#define PRIXLEAST64 "I64X"
149#define PRIoFAST64 "I64o"
150#define PRIuFAST64 "I64u"
151#define PRIxFAST64 "I64x"
152#define PRIXFAST64 "I64X"
154#define PRIoMAX "I64o"
155#define PRIuMAX "I64u"
156#define PRIxMAX "I64x"
157#define PRIXMAX "I64X"
167#define SCNdLEAST8 "d"
168#define SCNiLEAST8 "i"
174#define SCNdLEAST16 "hd"
175#define SCNiLEAST16 "hi"
176#define SCNdFAST16 "hd"
177#define SCNiFAST16 "hi"
181#define SCNdLEAST32 "ld"
182#define SCNiLEAST32 "li"
183#define SCNdFAST32 "ld"
184#define SCNiFAST32 "li"
188#define SCNdLEAST64 "I64d"
189#define SCNiLEAST64 "I64i"
190#define SCNdFAST64 "I64d"
191#define SCNiFAST64 "I64i"
193#define SCNdMAX "I64d"
194#define SCNiMAX "I64i"
197# define SCNdPTR "I64d"
198# define SCNiPTR "I64i"
209#define SCNoLEAST8 "o"
210#define SCNuLEAST8 "u"
211#define SCNxLEAST8 "x"
212#define SCNXLEAST8 "X"
222#define SCNoLEAST16 "ho"
223#define SCNuLEAST16 "hu"
224#define SCNxLEAST16 "hx"
225#define SCNXLEAST16 "hX"
226#define SCNoFAST16 "ho"
227#define SCNuFAST16 "hu"
228#define SCNxFAST16 "hx"
229#define SCNXFAST16 "hX"
235#define SCNoLEAST32 "lo"
236#define SCNuLEAST32 "lu"
237#define SCNxLEAST32 "lx"
238#define SCNXLEAST32 "lX"
239#define SCNoFAST32 "lo"
240#define SCNuFAST32 "lu"
241#define SCNxFAST32 "lx"
242#define SCNXFAST32 "lX"
248#define SCNoLEAST64 "I64o"
249#define SCNuLEAST64 "I64u"
250#define SCNxLEAST64 "I64x"
251#define SCNXLEAST64 "I64X"
252#define SCNoFAST64 "I64o"
253#define SCNuFAST64 "I64u"
254#define SCNxFAST64 "I64x"
255#define SCNXFAST64 "I64X"
257#define SCNoMAX "I64o"
258#define SCNuMAX "I64u"
259#define SCNxMAX "I64x"
260#define SCNXMAX "I64X"
263# define SCNoPTR "I64o"
264# define SCNuPTR "I64u"
265# define SCNxPTR "I64x"
266# define SCNXPTR "I64X"
279#define imaxabs _abs64
290imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom)
294 result.quot = numer / denom;
295 result.rem = numer % denom;
297 if (numer < 0 && result.rem > 0) {
307#define strtoimax _strtoi64
308#define strtoumax _strtoui64
311#define wcstoimax _wcstoi64
312#define wcstoumax _wcstoui64