33#error "Use this header only with Microsoft Visual C++ compilers!"
36#ifndef _MSC_INTTYPES_H_
37#define _MSC_INTTYPES_H_
50#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS)
62#define PRIdLEAST16 "hd"
63#define PRIiLEAST16 "hi"
64#define PRIdFAST16 "hd"
65#define PRIiFAST16 "hi"
69#define PRIdLEAST32 "I32d"
70#define PRIiLEAST32 "I32i"
71#define PRIdFAST32 "I32d"
72#define PRIiFAST32 "I32i"
76#define PRIdLEAST64 "I64d"
77#define PRIiLEAST64 "I64i"
78#define PRIdFAST64 "I64d"
79#define PRIiFAST64 "I64i"
105#define PRIoLEAST16 "ho"
106#define PRIuLEAST16 "hu"
107#define PRIxLEAST16 "hx"
108#define PRIXLEAST16 "hX"
109#define PRIoFAST16 "ho"
110#define PRIuFAST16 "hu"
111#define PRIxFAST16 "hx"
112#define PRIXFAST16 "hX"
118#define PRIoLEAST32 "I32o"
119#define PRIuLEAST32 "I32u"
120#define PRIxLEAST32 "I32x"
121#define PRIXLEAST32 "I32X"
122#define PRIoFAST32 "I32o"
123#define PRIuFAST32 "I32u"
124#define PRIxFAST32 "I32x"
125#define PRIXFAST32 "I32X"
131#define PRIoLEAST64 "I64o"
132#define PRIuLEAST64 "I64u"
133#define PRIxLEAST64 "I64x"
134#define PRIXLEAST64 "I64X"
135#define PRIoFAST64 "I64o"
136#define PRIuFAST64 "I64u"
137#define PRIxFAST64 "I64x"
138#define PRIXFAST64 "I64X"
140#define PRIoMAX "I64o"
141#define PRIuMAX "I64u"
142#define PRIxMAX "I64x"
143#define PRIXMAX "I64X"
156#define SCNdLEAST8 "d"
157#define SCNiLEAST8 "i"
163#define SCNdLEAST16 "hd"
164#define SCNiLEAST16 "hi"
165#define SCNdFAST16 "hd"
166#define SCNiFAST16 "hi"
170#define SCNdLEAST32 "ld"
171#define SCNiLEAST32 "li"
172#define SCNdFAST32 "ld"
173#define SCNiFAST32 "li"
177#define SCNdLEAST64 "I64d"
178#define SCNiLEAST64 "I64i"
179#define SCNdFAST64 "I64d"
180#define SCNiFAST64 "I64i"
182#define SCNdMAX "I64d"
183#define SCNiMAX "I64i"
185#if (defined(_WIN64) || defined(_M_ARM64))
186# define SCNdPTR "I64d"
187# define SCNiPTR "I64i"
198#define SCNoLEAST8 "o"
199#define SCNuLEAST8 "u"
200#define SCNxLEAST8 "x"
201#define SCNXLEAST8 "X"
211#define SCNoLEAST16 "ho"
212#define SCNuLEAST16 "hu"
213#define SCNxLEAST16 "hx"
214#define SCNXLEAST16 "hX"
215#define SCNoFAST16 "ho"
216#define SCNuFAST16 "hu"
217#define SCNxFAST16 "hx"
218#define SCNXFAST16 "hX"
224#define SCNoLEAST32 "lo"
225#define SCNuLEAST32 "lu"
226#define SCNxLEAST32 "lx"
227#define SCNXLEAST32 "lX"
228#define SCNoFAST32 "lo"
229#define SCNuFAST32 "lu"
230#define SCNxFAST32 "lx"
231#define SCNXFAST32 "lX"
237#define SCNoLEAST64 "I64o"
238#define SCNuLEAST64 "I64u"
239#define SCNxLEAST64 "I64x"
240#define SCNXLEAST64 "I64X"
241#define SCNoFAST64 "I64o"
242#define SCNuFAST64 "I64u"
243#define SCNxFAST64 "I64x"
244#define SCNXFAST64 "I64X"
246#define SCNoMAX "I64o"
247#define SCNuMAX "I64u"
248#define SCNxMAX "I64x"
249#define SCNXMAX "I64X"
251#if (defined(_WIN64) || defined(_M_ARM64))
252# define SCNoPTR "I64o"
253# define SCNuPTR "I64u"
254# define SCNxPTR "I64x"
255# define SCNXPTR "I64X"
268#define imaxabs _abs64
279imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom)
283 result.quot = numer / denom;
284 result.rem = numer % denom;
286 if (numer < 0 && result.rem > 0) {
296#define strtoimax _strtoi64
297#define strtoumax _strtoui64
300#define wcstoimax _wcstoi64
301#define wcstoumax _wcstoui64