1793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// ISO C9x compliant stdint.h for Microsoft Visual Studio 2793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 3793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 4793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// Copyright (c) 2006 Alexander Chemeris 5793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 6793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// Redistribution and use in source and binary forms, with or without 7793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// modification, are permitted provided that the following conditions are met: 8793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 9793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 1. Redistributions of source code must retain the above copyright notice, 10793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// this list of conditions and the following disclaimer. 11793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 12793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 2. Redistributions in binary form must reproduce the above copyright 13793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// notice, this list of conditions and the following disclaimer in the 14793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// documentation and/or other materials provided with the distribution. 15793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 16793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 3. The name of the author may be used to endorse or promote products 17793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// derived from this software without specific prior written permission. 18793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 19793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 20793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 21793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 22793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 24793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 25793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 26793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 27793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 28793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 30793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler/////////////////////////////////////////////////////////////////////////////// 31793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 32793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#ifndef _MSC_STDINT_H_ // [ 33793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define _MSC_STDINT_H_ 34793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 35793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#include <limits.h> 36793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 37793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// For Visual Studio 6 in C++ mode wrap <wchar.h> include with 'extern "C++" {}' 38793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// or compiler give many errors like this: 39793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// error C2733: second C linkage of overloaded function 'wmemchr' not allowed 40793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#if (_MSC_VER < 1300) && defined(__cplusplus) 41793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler extern "C++" { 42793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif 43793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# include <wchar.h> 44793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#if (_MSC_VER < 1300) && defined(__cplusplus) 45793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler } 46793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif 47793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 48793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#if defined __GNUC__ || _MSC_VER >= 1600 49793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#include "stdint.h" 50793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#else 51793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 52793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 7.18.1 Integer types 53793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 54793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 7.18.1.1 Exact-width integer types 55793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef __int8 int8_t; 56793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef __int16 int16_t; 57793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef __int32 int32_t; 58793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef __int64 int64_t; 59793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef unsigned __int8 uint8_t; 60793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef unsigned __int16 uint16_t; 61793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef unsigned __int32 uint32_t; 62793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef unsigned __int64 uint64_t; 63793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 64793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 7.18.1.2 Minimum-width integer types 65793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef int8_t int_least8_t; 66793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef int16_t int_least16_t; 67793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef int32_t int_least32_t; 68793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef int64_t int_least64_t; 69793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef uint8_t uint_least8_t; 70793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef uint16_t uint_least16_t; 71793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef uint32_t uint_least32_t; 72793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef uint64_t uint_least64_t; 73793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 74793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 7.18.1.3 Fastest minimum-width integer types 75793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef int8_t int_fast8_t; 76793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef int16_t int_fast16_t; 77793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef int32_t int_fast32_t; 78793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef int64_t int_fast64_t; 79793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef uint8_t uint_fast8_t; 80793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef uint16_t uint_fast16_t; 81793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef uint32_t uint_fast32_t; 82793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef uint64_t uint_fast64_t; 83793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 84793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 7.18.1.4 Integer types capable of holding object pointers 85793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#ifdef _WIN64 // [ 86793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler typedef __int64 intptr_t; 87793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler typedef unsigned __int64 uintptr_t; 88793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#else // _WIN64 ][ 89793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler typedef int intptr_t; 90793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler typedef unsigned int uintptr_t; 91793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif // _WIN64 ] 92793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 93793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 7.18.1.5 Greatest-width integer types 94793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef int64_t intmax_t; 95793ee12c6df9cad3806238d32528c49a3ff9331dNoah Preslertypedef uint64_t uintmax_t; 96793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 97793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 98793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 7.18.2 Limits of specified-width integer types 99793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 100793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259 101793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 102793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 7.18.2.1 Limits of exact-width integer types 103793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT8_MIN _I8_MIN 104793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT8_MAX _I8_MAX 105793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT16_MIN _I16_MIN 106793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT16_MAX _I16_MAX 107793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT32_MIN _I32_MIN 108793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT32_MAX _I32_MAX 109793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT64_MIN _I64_MIN 110793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT64_MAX _I64_MAX 111793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINT8_MAX _UI8_MAX 112793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINT16_MAX _UI16_MAX 113793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINT32_MAX _UI32_MAX 114793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINT64_MAX _UI64_MAX 115793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 116793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 7.18.2.2 Limits of minimum-width integer types 117793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT_LEAST8_MIN INT8_MIN 118793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT_LEAST8_MAX INT8_MAX 119793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT_LEAST16_MIN INT16_MIN 120793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT_LEAST16_MAX INT16_MAX 121793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT_LEAST32_MIN INT32_MIN 122793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT_LEAST32_MAX INT32_MAX 123793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT_LEAST64_MIN INT64_MIN 124793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT_LEAST64_MAX INT64_MAX 125793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINT_LEAST8_MAX UINT8_MAX 126793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINT_LEAST16_MAX UINT16_MAX 127793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINT_LEAST32_MAX UINT32_MAX 128793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINT_LEAST64_MAX UINT64_MAX 129793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 130793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 7.18.2.3 Limits of fastest minimum-width integer types 131793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT_FAST8_MIN INT8_MIN 132793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT_FAST8_MAX INT8_MAX 133793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT_FAST16_MIN INT16_MIN 134793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT_FAST16_MAX INT16_MAX 135793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT_FAST32_MIN INT32_MIN 136793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT_FAST32_MAX INT32_MAX 137793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT_FAST64_MIN INT64_MIN 138793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT_FAST64_MAX INT64_MAX 139793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINT_FAST8_MAX UINT8_MAX 140793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINT_FAST16_MAX UINT16_MAX 141793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINT_FAST32_MAX UINT32_MAX 142793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINT_FAST64_MAX UINT64_MAX 143793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 144793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 7.18.2.4 Limits of integer types capable of holding object pointers 145793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#ifdef _WIN64 // [ 146793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define INTPTR_MIN INT64_MIN 147793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define INTPTR_MAX INT64_MAX 148793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define UINTPTR_MAX UINT64_MAX 149793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#else // _WIN64 ][ 150793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define INTPTR_MIN INT32_MIN 151793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define INTPTR_MAX INT32_MAX 152793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define UINTPTR_MAX UINT32_MAX 153793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif // _WIN64 ] 154793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 155793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 7.18.2.5 Limits of greatest-width integer types 156793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INTMAX_MIN INT64_MIN 157793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INTMAX_MAX INT64_MAX 158793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINTMAX_MAX UINT64_MAX 159793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 160793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 7.18.3 Limits of other integer types 161793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 162793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#ifdef _WIN64 // [ 163793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define PTRDIFF_MIN _I64_MIN 164793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define PTRDIFF_MAX _I64_MAX 165793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#else // _WIN64 ][ 166793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define PTRDIFF_MIN _I32_MIN 167793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define PTRDIFF_MAX _I32_MAX 168793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif // _WIN64 ] 169793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 170793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define SIG_ATOMIC_MIN INT_MIN 171793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define SIG_ATOMIC_MAX INT_MAX 172793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 173793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#ifndef SIZE_MAX // [ 174793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# ifdef _WIN64 // [ 175793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define SIZE_MAX _UI64_MAX 176793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# else // _WIN64 ][ 177793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define SIZE_MAX _UI32_MAX 178793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# endif // _WIN64 ] 179793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif // SIZE_MAX ] 180793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 181793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h> 182793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#ifndef WCHAR_MIN // [ 183793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define WCHAR_MIN 0 184793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif // WCHAR_MIN ] 185793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#ifndef WCHAR_MAX // [ 186793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler# define WCHAR_MAX _UI16_MAX 187793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif // WCHAR_MAX ] 188793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 189793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define WINT_MIN 0 190793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define WINT_MAX _UI16_MAX 191793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 192793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif // __STDC_LIMIT_MACROS ] 193793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 194793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 195793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 7.18.4 Limits of other integer types 196793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 197793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260 198793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 199793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 7.18.4.1 Macros for minimum-width integer constants 200793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 201793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT8_C(val) val 202793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT16_C(val) val 203793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT32_C(val) val##L 204793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INT64_C(val) val##i64 205793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 206793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINT8_C(val) val 207793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINT16_C(val) val 208793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINT32_C(val) val##UL 209793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINT64_C(val) val##Ui64 210793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 211793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler// 7.18.4.2 Macros for greatest-width integer constants 212793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define INTMAX_C INT64_C 213793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#define UINTMAX_C UINT64_C 214793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 215793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif // __STDC_CONSTANT_MACROS ] 216793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 217793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif 218793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler 219793ee12c6df9cad3806238d32528c49a3ff9331dNoah Presler#endif // _MSC_STDINT_H_ ] 220