inttypes.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This file has no copyright assigned and is placed in the Public Domain.
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This file was original part of the w64 mingw-runtime package.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  THIS SOFTWARE IS NOT COPYRIGHTED
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Modified for libusb/MSVC: Pete Batard <pbatard@gmail.com>
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This source code is offered for use in the public domain. You may
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  use, modify or distribute it freely.
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  This code is distributed in the hope that it will be useful but
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  DISCLAIMED. This includes but is not limited to warranties of
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *  Date: 2010-04-02
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _MSC_VER
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#error This header should only be used with Microsoft compilers
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 7.8 Format conversion of integer types <inttypes.h> */
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _INTTYPES_H_
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _INTTYPES_H_
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdint.h>
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef	__cplusplus
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern	"C"	{
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct {
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	intmax_t quot;
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	intmax_t rem;
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	} imaxdiv_t;
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 7.8.1 Macros for format specifiers
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * MS runtime does not yet understand C9x standard "ll"
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * length specifier. It appears to treat "ll" as "l".
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The non-standard I64 length specifier causes warning in GCC,
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * but understood by MS runtime functions.
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* fprintf macros for signed types */
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRId8 "d"
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRId16 "d"
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRId32 "d"
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRId64 "I64d"
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIdLEAST8 "d"
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIdLEAST16 "d"
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIdLEAST32 "d"
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIdLEAST64 "I64d"
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIdFAST8 "d"
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIdFAST16 "d"
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIdFAST32 "d"
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIdFAST64 "I64d"
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIdMAX "I64d"
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIi8 "i"
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIi16 "i"
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIi32 "i"
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIi64 "I64i"
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIiLEAST8 "i"
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIiLEAST16 "i"
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIiLEAST32 "i"
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIiLEAST64 "I64i"
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIiFAST8 "i"
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIiFAST16 "i"
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIiFAST32 "i"
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIiFAST64 "I64i"
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIiMAX "I64i"
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIo8 "o"
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIo16 "o"
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIo32 "o"
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIo64 "I64o"
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIoLEAST8 "o"
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIoLEAST16 "o"
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIoLEAST32 "o"
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIoLEAST64 "I64o"
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIoFAST8 "o"
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIoFAST16 "o"
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIoFAST32 "o"
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIoFAST64 "I64o"
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIoMAX "I64o"
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* fprintf macros for unsigned types */
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIu8 "u"
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIu16 "u"
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIu32 "u"
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIu64 "I64u"
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIuLEAST8 "u"
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIuLEAST16 "u"
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIuLEAST32 "u"
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIuLEAST64 "I64u"
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIuFAST8 "u"
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIuFAST16 "u"
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIuFAST32 "u"
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIuFAST64 "I64u"
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIuMAX "I64u"
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIx8 "x"
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIx16 "x"
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIx32 "x"
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIx64 "I64x"
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIxLEAST8 "x"
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIxLEAST16 "x"
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIxLEAST32 "x"
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIxLEAST64 "I64x"
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIxFAST8 "x"
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIxFAST16 "x"
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIxFAST32 "x"
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIxFAST64 "I64x"
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIxMAX "I64x"
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIX8 "X"
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIX16 "X"
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIX32 "X"
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIX64 "I64X"
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIXLEAST8 "X"
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIXLEAST16 "X"
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIXLEAST32 "X"
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIXLEAST64 "I64X"
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIXFAST8 "X"
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIXFAST16 "X"
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIXFAST32 "X"
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIXFAST64 "I64X"
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIXMAX "I64X"
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   fscanf macros for signed int types
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   NOTE: if 32-bit int is used for int_fast8_t and int_fast16_t
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   (see stdint.h, 7.18.1.3), FAST8 and FAST16 should have
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *   no length identifiers
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNd16 "hd"
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNd32 "d"
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNd64 "I64d"
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNdLEAST16 "hd"
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNdLEAST32 "d"
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNdLEAST64 "I64d"
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNdFAST16 "hd"
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNdFAST32 "d"
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNdFAST64 "I64d"
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNdMAX "I64d"
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNi16 "hi"
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNi32 "i"
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNi64 "I64i"
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNiLEAST16 "hi"
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNiLEAST32 "i"
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNiLEAST64 "I64i"
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNiFAST16 "hi"
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNiFAST32 "i"
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNiFAST64 "I64i"
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNiMAX "I64i"
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNo16 "ho"
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNo32 "o"
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNo64 "I64o"
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNoLEAST16 "ho"
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNoLEAST32 "o"
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNoLEAST64 "I64o"
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNoFAST16 "ho"
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNoFAST32 "o"
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNoFAST64 "I64o"
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNoMAX "I64o"
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNx16 "hx"
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNx32 "x"
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNx64 "I64x"
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNxLEAST16 "hx"
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNxLEAST32 "x"
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNxLEAST64 "I64x"
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNxFAST16 "hx"
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNxFAST32 "x"
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNxFAST64 "I64x"
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNxMAX "I64x"
2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* fscanf macros for unsigned int types */
2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNu16 "hu"
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNu32 "u"
2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNu64 "I64u"
2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNuLEAST16 "hu"
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNuLEAST32 "u"
2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNuLEAST64 "I64u"
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNuFAST16 "hu"
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNuFAST32 "u"
2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNuFAST64 "I64u"
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNuMAX "I64u"
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef _WIN64
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIdPTR "I64d"
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIiPTR "I64i"
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIoPTR "I64o"
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIuPTR "I64u"
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIxPTR "I64x"
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIXPTR "I64X"
2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNdPTR "I64d"
2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNiPTR "I64i"
2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNoPTR "I64o"
2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNxPTR "I64x"
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNuPTR "I64u"
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIdPTR "d"
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIiPTR "i"
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIoPTR "o"
2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIuPTR "u"
2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIxPTR "x"
2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PRIXPTR "X"
2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNdPTR "d"
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNiPTR "i"
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNoPTR "o"
2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNxPTR "x"
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) #define SCNuPTR "u"
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * no length modifier for char types prior to C9x
2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * MS runtime  scanf appears to treat "hh" as "h"
2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* signed char */
2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNd8 "hhd"
2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNdLEAST8 "hhd"
2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNdFAST8 "hhd"
2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNi8 "hhi"
2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNiLEAST8 "hhi"
2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNiFAST8 "hhi"
2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNo8 "hho"
2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNoLEAST8 "hho"
2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNoFAST8 "hho"
2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNx8 "hhx"
2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNxLEAST8 "hhx"
2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNxFAST8 "hhx"
2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* unsigned char */
2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNu8 "hhu"
2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNuLEAST8 "hhu"
2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SCNuFAST8 "hhu"
2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* __STDC_VERSION__ >= 199901 */
2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef	__cplusplus
2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* ndef _INTTYPES_H */
296