File indexing completed on 2025-02-22 10:52:25
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037 #ifndef _MSC_VER
0038 #error "Use this header only with Microsoft Visual C++ compilers!"
0039 #endif
0040
0041 #ifndef _MSC_STDINT_H_
0042 #define _MSC_STDINT_H_
0043
0044 #if _MSC_VER > 1000
0045 #pragma once
0046 #endif
0047
0048
0049 #if _MSC_VER >= 1600
0050 #include <stdint.h>
0051
0052 #if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
0053
0054 #undef INT8_C
0055 #undef INT16_C
0056 #undef INT32_C
0057 #undef INT64_C
0058 #undef UINT8_C
0059 #undef UINT16_C
0060 #undef UINT32_C
0061 #undef UINT64_C
0062
0063
0064
0065 #define INT8_C(val) val##i8
0066 #define INT16_C(val) val##i16
0067 #define INT32_C(val) val##i32
0068 #define INT64_C(val) val##i64
0069
0070 #define UINT8_C(val) val##ui8
0071 #define UINT16_C(val) val##ui16
0072 #define UINT32_C(val) val##ui32
0073 #define UINT64_C(val) val##ui64
0074
0075
0076
0077
0078 #ifndef INTMAX_C
0079 # define INTMAX_C INT64_C
0080 #endif
0081 #ifndef UINTMAX_C
0082 # define UINTMAX_C UINT64_C
0083 #endif
0084
0085 #endif
0086
0087 #else
0088
0089 #include <limits.h>
0090
0091
0092
0093
0094
0095 #if defined(__cplusplus) && !defined(_M_ARM)
0096 extern "C" {
0097 #endif
0098 # include <wchar.h>
0099 #if defined(__cplusplus) && !defined(_M_ARM)
0100 }
0101 #endif
0102
0103
0104 #ifndef _W64
0105 # if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
0106 # define _W64 __w64
0107 # else
0108 # define _W64
0109 # endif
0110 #endif
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120 #if (_MSC_VER < 1300)
0121 typedef signed char int8_t;
0122 typedef signed short int16_t;
0123 typedef signed int int32_t;
0124 typedef unsigned char uint8_t;
0125 typedef unsigned short uint16_t;
0126 typedef unsigned int uint32_t;
0127 #else
0128 typedef signed __int8 int8_t;
0129 typedef signed __int16 int16_t;
0130 typedef signed __int32 int32_t;
0131 typedef unsigned __int8 uint8_t;
0132 typedef unsigned __int16 uint16_t;
0133 typedef unsigned __int32 uint32_t;
0134 #endif
0135 typedef signed __int64 int64_t;
0136 typedef unsigned __int64 uint64_t;
0137
0138
0139
0140 typedef int8_t int_least8_t;
0141 typedef int16_t int_least16_t;
0142 typedef int32_t int_least32_t;
0143 typedef int64_t int_least64_t;
0144 typedef uint8_t uint_least8_t;
0145 typedef uint16_t uint_least16_t;
0146 typedef uint32_t uint_least32_t;
0147 typedef uint64_t uint_least64_t;
0148
0149
0150 typedef int8_t int_fast8_t;
0151 typedef int16_t int_fast16_t;
0152 typedef int32_t int_fast32_t;
0153 typedef int64_t int_fast64_t;
0154 typedef uint8_t uint_fast8_t;
0155 typedef uint16_t uint_fast16_t;
0156 typedef uint32_t uint_fast32_t;
0157 typedef uint64_t uint_fast64_t;
0158
0159
0160 #ifdef _WIN64
0161 typedef signed __int64 intptr_t;
0162 typedef unsigned __int64 uintptr_t;
0163 #else
0164 typedef _W64 signed int intptr_t;
0165 typedef _W64 unsigned int uintptr_t;
0166 #endif
0167
0168
0169 typedef int64_t intmax_t;
0170 typedef uint64_t uintmax_t;
0171
0172
0173
0174
0175 #if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
0176
0177
0178 #define INT8_MIN ((int8_t)_I8_MIN)
0179 #define INT8_MAX _I8_MAX
0180 #define INT16_MIN ((int16_t)_I16_MIN)
0181 #define INT16_MAX _I16_MAX
0182 #define INT32_MIN ((int32_t)_I32_MIN)
0183 #define INT32_MAX _I32_MAX
0184 #define INT64_MIN ((int64_t)_I64_MIN)
0185 #define INT64_MAX _I64_MAX
0186 #define UINT8_MAX _UI8_MAX
0187 #define UINT16_MAX _UI16_MAX
0188 #define UINT32_MAX _UI32_MAX
0189 #define UINT64_MAX _UI64_MAX
0190
0191
0192 #define INT_LEAST8_MIN INT8_MIN
0193 #define INT_LEAST8_MAX INT8_MAX
0194 #define INT_LEAST16_MIN INT16_MIN
0195 #define INT_LEAST16_MAX INT16_MAX
0196 #define INT_LEAST32_MIN INT32_MIN
0197 #define INT_LEAST32_MAX INT32_MAX
0198 #define INT_LEAST64_MIN INT64_MIN
0199 #define INT_LEAST64_MAX INT64_MAX
0200 #define UINT_LEAST8_MAX UINT8_MAX
0201 #define UINT_LEAST16_MAX UINT16_MAX
0202 #define UINT_LEAST32_MAX UINT32_MAX
0203 #define UINT_LEAST64_MAX UINT64_MAX
0204
0205
0206 #define INT_FAST8_MIN INT8_MIN
0207 #define INT_FAST8_MAX INT8_MAX
0208 #define INT_FAST16_MIN INT16_MIN
0209 #define INT_FAST16_MAX INT16_MAX
0210 #define INT_FAST32_MIN INT32_MIN
0211 #define INT_FAST32_MAX INT32_MAX
0212 #define INT_FAST64_MIN INT64_MIN
0213 #define INT_FAST64_MAX INT64_MAX
0214 #define UINT_FAST8_MAX UINT8_MAX
0215 #define UINT_FAST16_MAX UINT16_MAX
0216 #define UINT_FAST32_MAX UINT32_MAX
0217 #define UINT_FAST64_MAX UINT64_MAX
0218
0219
0220 #ifdef _WIN64
0221 # define INTPTR_MIN INT64_MIN
0222 # define INTPTR_MAX INT64_MAX
0223 # define UINTPTR_MAX UINT64_MAX
0224 #else
0225 # define INTPTR_MIN INT32_MIN
0226 # define INTPTR_MAX INT32_MAX
0227 # define UINTPTR_MAX UINT32_MAX
0228 #endif
0229
0230
0231 #define INTMAX_MIN INT64_MIN
0232 #define INTMAX_MAX INT64_MAX
0233 #define UINTMAX_MAX UINT64_MAX
0234
0235
0236
0237 #ifdef _WIN64
0238 # define PTRDIFF_MIN _I64_MIN
0239 # define PTRDIFF_MAX _I64_MAX
0240 #else
0241 # define PTRDIFF_MIN _I32_MIN
0242 # define PTRDIFF_MAX _I32_MAX
0243 #endif
0244
0245 #define SIG_ATOMIC_MIN INT_MIN
0246 #define SIG_ATOMIC_MAX INT_MAX
0247
0248 #ifndef SIZE_MAX
0249 # ifdef _WIN64
0250 # define SIZE_MAX _UI64_MAX
0251 # else
0252 # define SIZE_MAX _UI32_MAX
0253 # endif
0254 #endif
0255
0256
0257 #ifndef WCHAR_MIN
0258 # define WCHAR_MIN 0
0259 #endif
0260 #ifndef WCHAR_MAX
0261 # define WCHAR_MAX _UI16_MAX
0262 #endif
0263
0264 #define WINT_MIN 0
0265 #define WINT_MAX _UI16_MAX
0266
0267 #endif
0268
0269
0270
0271
0272 #if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
0273
0274
0275
0276 #define INT8_C(val) val##i8
0277 #define INT16_C(val) val##i16
0278 #define INT32_C(val) val##i32
0279 #define INT64_C(val) val##i64
0280
0281 #define UINT8_C(val) val##ui8
0282 #define UINT16_C(val) val##ui16
0283 #define UINT32_C(val) val##ui32
0284 #define UINT64_C(val) val##ui64
0285
0286
0287
0288
0289 #ifndef INTMAX_C
0290 # define INTMAX_C INT64_C
0291 #endif
0292 #ifndef UINTMAX_C
0293 # define UINTMAX_C UINT64_C
0294 #endif
0295
0296 #endif
0297
0298 #endif
0299
0300 #endif