stdint.h

Engine/source/platformWin32/stdint.h

More...

Public Defines

define
_W64() 
define
INT16_C(val) val##i16
define
INT16_MAX() _I16_MAX
define
INT16_MIN() (()_I16_MIN)
define
INT32_C(val) val##i32
define
INT32_MAX() _I32_MAX
define
INT32_MIN() (()_I32_MIN)
define
INT64_C(val) val##i64
define
INT64_MAX() _I64_MAX
define
INT64_MIN() (()_I64_MIN)
define
INT8_C(val) val##i8
define
INT8_MAX() _I8_MAX
define
INT8_MIN() (()_I8_MIN)
define
define
define
define
define
define
define
define
PTRDIFF_MAX() _I32_MAX
define
PTRDIFF_MIN() _I32_MIN
define
SIG_ATOMIC_MAX() INT_MAX
define
SIG_ATOMIC_MIN() INT_MIN
define
SIZE_MAX() _UI32_MAX
define
UINT16_C(val) val##ui16
define
UINT16_MAX() _UI16_MAX
define
UINT32_C(val) val##ui32
define
UINT32_MAX() _UI32_MAX
define
UINT64_C(val) val##ui64
define
UINT64_MAX() _UI64_MAX
define
UINT8_C(val) val##ui8
define
UINT8_MAX() _UI8_MAX
define
define
define
define
WCHAR_MAX() _UI16_MAX
define
define
WINT_MAX() _UI16_MAX
define

Public Typedefs

signed short
int16_t 
signed int
int32_t 
signed __int64
int64_t 
signed char
int8_t 
int_fast16_t 
int_fast32_t 
int_fast64_t 
int_fast8_t 
int_least16_t 
int_least32_t 
int_least64_t 
int_least8_t 
intmax_t 
_W64 signed int
intptr_t 
unsigned short
uint16_t 
unsigned int
uint32_t 
unsigned __int64
uint64_t 
unsigned char
uint8_t 
uint_fast16_t 
uint_fast32_t 
uint_fast64_t 
uint_fast8_t 
uint_least16_t 
uint_least32_t 
uint_least64_t 
uint_least8_t 
uintmax_t 
_W64 unsigned int
uintptr_t 

Detailed Description

Public Defines

_W64() 
INT16_C(val) val##i16
INT16_MAX() _I16_MAX
INT16_MIN() (()_I16_MIN)
INT32_C(val) val##i32
INT32_MAX() _I32_MAX
INT32_MIN() (()_I32_MIN)
INT64_C(val) val##i64
INT64_MAX() _I64_MAX
INT64_MIN() (()_I64_MIN)
INT8_C(val) val##i8
INT8_MAX() _I8_MAX
INT8_MIN() (()_I8_MIN)
INT_FAST16_MAX() 
INT_FAST16_MIN() 
INT_FAST32_MAX() 
INT_FAST32_MIN() 
INT_FAST64_MAX() 
INT_FAST64_MIN() 
INT_FAST8_MAX() 
INT_FAST8_MIN() 
INT_LEAST16_MAX() 
INT_LEAST16_MIN() 
INT_LEAST32_MAX() 
INT_LEAST32_MIN() 
INT_LEAST64_MAX() 
INT_LEAST64_MIN() 
INT_LEAST8_MAX() 
INT_LEAST8_MIN() 
INTMAX_C() 
INTMAX_MAX() 
INTMAX_MIN() 
INTPTR_MAX() 
INTPTR_MIN() 
PTRDIFF_MAX() _I32_MAX
PTRDIFF_MIN() _I32_MIN
SIG_ATOMIC_MAX() INT_MAX
SIG_ATOMIC_MIN() INT_MIN
SIZE_MAX() _UI32_MAX
UINT16_C(val) val##ui16
UINT16_MAX() _UI16_MAX
UINT32_C(val) val##ui32
UINT32_MAX() _UI32_MAX
UINT64_C(val) val##ui64
UINT64_MAX() _UI64_MAX
UINT8_C(val) val##ui8
UINT8_MAX() _UI8_MAX
UINT_FAST16_MAX() 
UINT_FAST32_MAX() 
UINT_FAST64_MAX() 
UINT_FAST8_MAX() 
UINT_LEAST16_MAX() 
UINT_LEAST32_MAX() 
UINT_LEAST64_MAX() 
UINT_LEAST8_MAX() 
UINTMAX_C() 
UINTMAX_MAX() 
UINTPTR_MAX() 
WCHAR_MAX() _UI16_MAX
WCHAR_MIN() 0
WINT_MAX() _UI16_MAX
WINT_MIN() 0

Public Typedefs

typedef signed short int16_t 
typedef signed int int32_t 
typedef signed __int64 int64_t 
typedef signed char int8_t 
typedef int16_t int_fast16_t 
typedef int32_t int_fast32_t 
typedef int64_t int_fast64_t 
typedef int8_t int_fast8_t 
typedef int16_t int_least16_t 
typedef int32_t int_least32_t 
typedef int64_t int_least64_t 
typedef int8_t int_least8_t 
typedef int64_t intmax_t 
typedef _W64 signed int intptr_t 
typedef unsigned short uint16_t 
typedef unsigned int uint32_t 
typedef unsigned __int64 uint64_t 
typedef unsigned char uint8_t 
typedef uint16_t uint_fast16_t 
typedef uint32_t uint_fast32_t 
typedef uint64_t uint_fast64_t 
typedef uint8_t uint_fast8_t 
typedef uint16_t uint_least16_t 
typedef uint32_t uint_least32_t 
typedef uint64_t uint_least64_t 
typedef uint8_t uint_least8_t 
typedef uint64_t uintmax_t 
typedef _W64 unsigned int uintptr_t 
  1
  2// ISO C9x  compliant stdint.h for Microsoft Visual Studio
  3// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 
  4// 
  5//  Copyright (c) 2006-2013 Alexander Chemeris
  6// 
  7// Redistribution and use in source and binary forms, with or without
  8// modification, are permitted provided that the following conditions are met:
  9// 
 10//   1. Redistributions of source code must retain the above copyright notice,
 11//      this list of conditions and the following disclaimer.
 12// 
 13//   2. Redistributions in binary form must reproduce the above copyright
 14//      notice, this list of conditions and the following disclaimer in the
 15//      documentation and/or other materials provided with the distribution.
 16// 
 17//   3. Neither the name of the product nor the names of its contributors may
 18//      be used to endorse or promote products derived from this software
 19//      without specific prior written permission.
 20// 
 21// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
 22// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 23// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
 24// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 25// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 26// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 27// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
 28// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 29// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 30// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 31// 
 32///////////////////////////////////////////////////////////////////////////////
 33
 34#ifndef _MSC_VER // [
 35#error "Use this header only with Microsoft Visual C++ compilers!"
 36#endif // _MSC_VER ]
 37
 38#ifndef _MSC_STDINT_H_ // [
 39#define _MSC_STDINT_H_
 40
 41#if _MSC_VER > 1000
 42#pragma once
 43#endif
 44
 45#if _MSC_VER >= 1600 // [
 46#include <stdint.h>
 47#else // ] _MSC_VER >= 1600 [
 48
 49#include <limits.h>
 50
 51// For Visual Studio 6 in C++ mode and for many Visual Studio versions when
 52// compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}'
 53// or compiler give many errors like this:
 54//   error C2733: second C linkage of overloaded function 'wmemchr' not allowed
 55#ifdef __cplusplus
 56extern "C" {
 57#endif
 58#  include <wchar.h>
 59#ifdef __cplusplus
 60}
 61#endif
 62
 63// Define _W64 macros to mark types changing their size, like intptr_t.
 64#ifndef _W64
 65#  if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300
 66#     define _W64 __w64
 67#  else
 68#     define _W64
 69#  endif
 70#endif
 71
 72
 73// 7.18.1 Integer types
 74
 75// 7.18.1.1 Exact-width integer types
 76
 77// Visual Studio 6 and Embedded Visual C++ 4 doesn't
 78// realize that, e.g. char has the same size as __int8
 79// so we give up on __intX for them.
 80#if (_MSC_VER < 1300)
 81   typedef signed char       int8_t;
 82   typedef signed short      int16_t;
 83   typedef signed int        int32_t;
 84   typedef unsigned char     uint8_t;
 85   typedef unsigned short    uint16_t;
 86   typedef unsigned int      uint32_t;
 87#else
 88   typedef signed __int8     int8_t;
 89   typedef signed __int16    int16_t;
 90   typedef signed __int32    int32_t;
 91   typedef unsigned __int8   uint8_t;
 92   typedef unsigned __int16  uint16_t;
 93   typedef unsigned __int32  uint32_t;
 94#endif
 95typedef signed __int64       int64_t;
 96typedef unsigned __int64     uint64_t;
 97
 98
 99// 7.18.1.2 Minimum-width integer types
100typedef int8_t    int_least8_t;
101typedef int16_t   int_least16_t;
102typedef int32_t   int_least32_t;
103typedef int64_t   int_least64_t;
104typedef uint8_t   uint_least8_t;
105typedef uint16_t  uint_least16_t;
106typedef uint32_t  uint_least32_t;
107typedef uint64_t  uint_least64_t;
108
109// 7.18.1.3 Fastest minimum-width integer types
110typedef int8_t    int_fast8_t;
111typedef int16_t   int_fast16_t;
112typedef int32_t   int_fast32_t;
113typedef int64_t   int_fast64_t;
114typedef uint8_t   uint_fast8_t;
115typedef uint16_t  uint_fast16_t;
116typedef uint32_t  uint_fast32_t;
117typedef uint64_t  uint_fast64_t;
118
119// 7.18.1.4 Integer types capable of holding object pointers
120#ifdef _WIN64 // [
121   typedef signed __int64    intptr_t;
122   typedef unsigned __int64  uintptr_t;
123#else // _WIN64 ][
124   typedef _W64 signed int   intptr_t;
125   typedef _W64 unsigned int uintptr_t;
126#endif // _WIN64 ]
127
128// 7.18.1.5 Greatest-width integer types
129typedef int64_t   intmax_t;
130typedef uint64_t  uintmax_t;
131
132
133// 7.18.2 Limits of specified-width integer types
134
135#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [   See footnote 220 at page 257 and footnote 221 at page 259
136
137// 7.18.2.1 Limits of exact-width integer types
138#define INT8_MIN     ((int8_t)_I8_MIN)
139#define INT8_MAX     _I8_MAX
140#define INT16_MIN    ((int16_t)_I16_MIN)
141#define INT16_MAX    _I16_MAX
142#define INT32_MIN    ((int32_t)_I32_MIN)
143#define INT32_MAX    _I32_MAX
144#define INT64_MIN    ((int64_t)_I64_MIN)
145#define INT64_MAX    _I64_MAX
146#define UINT8_MAX    _UI8_MAX
147#define UINT16_MAX   _UI16_MAX
148#define UINT32_MAX   _UI32_MAX
149#define UINT64_MAX   _UI64_MAX
150
151// 7.18.2.2 Limits of minimum-width integer types
152#define INT_LEAST8_MIN    INT8_MIN
153#define INT_LEAST8_MAX    INT8_MAX
154#define INT_LEAST16_MIN   INT16_MIN
155#define INT_LEAST16_MAX   INT16_MAX
156#define INT_LEAST32_MIN   INT32_MIN
157#define INT_LEAST32_MAX   INT32_MAX
158#define INT_LEAST64_MIN   INT64_MIN
159#define INT_LEAST64_MAX   INT64_MAX
160#define UINT_LEAST8_MAX   UINT8_MAX
161#define UINT_LEAST16_MAX  UINT16_MAX
162#define UINT_LEAST32_MAX  UINT32_MAX
163#define UINT_LEAST64_MAX  UINT64_MAX
164
165// 7.18.2.3 Limits of fastest minimum-width integer types
166#define INT_FAST8_MIN    INT8_MIN
167#define INT_FAST8_MAX    INT8_MAX
168#define INT_FAST16_MIN   INT16_MIN
169#define INT_FAST16_MAX   INT16_MAX
170#define INT_FAST32_MIN   INT32_MIN
171#define INT_FAST32_MAX   INT32_MAX
172#define INT_FAST64_MIN   INT64_MIN
173#define INT_FAST64_MAX   INT64_MAX
174#define UINT_FAST8_MAX   UINT8_MAX
175#define UINT_FAST16_MAX  UINT16_MAX
176#define UINT_FAST32_MAX  UINT32_MAX
177#define UINT_FAST64_MAX  UINT64_MAX
178
179// 7.18.2.4 Limits of integer types capable of holding object pointers
180#ifdef _WIN64 // [
181#  define INTPTR_MIN   INT64_MIN
182#  define INTPTR_MAX   INT64_MAX
183#  define UINTPTR_MAX  UINT64_MAX
184#else // _WIN64 ][
185#  define INTPTR_MIN   INT32_MIN
186#  define INTPTR_MAX   INT32_MAX
187#  define UINTPTR_MAX  UINT32_MAX
188#endif // _WIN64 ]
189
190// 7.18.2.5 Limits of greatest-width integer types
191#define INTMAX_MIN   INT64_MIN
192#define INTMAX_MAX   INT64_MAX
193#define UINTMAX_MAX  UINT64_MAX
194
195// 7.18.3 Limits of other integer types
196
197#ifdef _WIN64 // [
198#  define PTRDIFF_MIN  _I64_MIN
199#  define PTRDIFF_MAX  _I64_MAX
200#else  // _WIN64 ][
201#  define PTRDIFF_MIN  _I32_MIN
202#  define PTRDIFF_MAX  _I32_MAX
203#endif  // _WIN64 ]
204
205#define SIG_ATOMIC_MIN  INT_MIN
206#define SIG_ATOMIC_MAX  INT_MAX
207
208#ifndef SIZE_MAX // [
209#  ifdef _WIN64 // [
210#     define SIZE_MAX  _UI64_MAX
211#  else // _WIN64 ][
212#     define SIZE_MAX  _UI32_MAX
213#  endif // _WIN64 ]
214#endif // SIZE_MAX ]
215
216// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h>
217#ifndef WCHAR_MIN // [
218#  define WCHAR_MIN  0
219#endif  // WCHAR_MIN ]
220#ifndef WCHAR_MAX // [
221#  define WCHAR_MAX  _UI16_MAX
222#endif  // WCHAR_MAX ]
223
224#define WINT_MIN  0
225#define WINT_MAX  _UI16_MAX
226
227#endif // __STDC_LIMIT_MACROS ]
228
229
230// 7.18.4 Limits of other integer types
231
232#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [   See footnote 224 at page 260
233
234// 7.18.4.1 Macros for minimum-width integer constants
235
236#define INT8_C(val)  val##i8
237#define INT16_C(val) val##i16
238#define INT32_C(val) val##i32
239#define INT64_C(val) val##i64
240
241#define UINT8_C(val)  val##ui8
242#define UINT16_C(val) val##ui16
243#define UINT32_C(val) val##ui32
244#define UINT64_C(val) val##ui64
245
246// 7.18.4.2 Macros for greatest-width integer constants
247// These #ifndef's are needed to prevent collisions with <boost/cstdint.hpp>.
248// Check out Issue 9 for the details.
249#ifndef INTMAX_C //   [
250#  define INTMAX_C   INT64_C
251#endif // INTMAX_C    ]
252#ifndef UINTMAX_C //  [
253#  define UINTMAX_C  UINT64_C
254#endif // UINTMAX_C   ]
255
256#endif // __STDC_CONSTANT_MACROS ]
257
258#endif // _MSC_VER >= 1600 ]
259
260#endif // _MSC_STDINT_H_ ]
261