1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-27 00:29:31 +00:00
cc65/include/inttypes.h
uz cc12a5a838 inttypes.h is an ISO C standard include file.
git-svn-id: svn://svn.cc65.org/cc65/trunk@4183 b7a2c559-68d2-44c3-8de9-860c34a00d81
2009-09-17 19:31:47 +00:00

245 lines
7.8 KiB
C

/*****************************************************************************/
/* */
/* inttypes.h */
/* */
/* Format conversion of integer types */
/* */
/* */
/* */
/* (C) 2002-2009, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* warranty. In no event will the authors be held liable for any damages */
/* arising from the use of this software. */
/* */
/* Permission is granted to anyone to use this software for any purpose, */
/* including commercial applications, and to alter it and redistribute it */
/* freely, subject to the following restrictions: */
/* */
/* 1. The origin of this software must not be misrepresented; you must not */
/* claim that you wrote the original software. If you use this software */
/* in a product, an acknowledgment in the product documentation would be */
/* appreciated but is not required. */
/* 2. Altered source versions must be plainly marked as such, and must not */
/* be misrepresented as being the original software. */
/* 3. This notice may not be removed or altered from any source */
/* distribution. */
/* */
/*****************************************************************************/
/* Note: This file is not fully ISO 9899-1999 compliant because cc65 lacks
* a 64 bit data types and is not able to return structs > 4 bytes. The
* declarations have been adjusted accordingly or left out.
*/
#ifndef _INTTYPES_H
#define _INTTYPES_H
/* inttypes.h must always include stdint.h */
#ifndef _STDINT_H
#include <stdint.h>
#endif
/* Return type of the imaxdiv function (which currently doesn't exist) */
typedef struct {
intmax_t rem;
intmax_t quot;
} ldiv_t;
/* Standard functions */
intmax_t __fastcall__ imaxabs (intmax_t val);
intmax_t __fastcall__ strtoimax (const char* nptr, char** endptr, int base);
uintmax_t __fastcall__ strtoumax (const char* nptr, char** endptr, int base);
/* printf() macros for signed integers */
#define PRId8 "d"
#define PRId16 "d"
#define PRId32 "ld"
#define PRIdLEAST8 "d"
#define PRIdLEAST16 "d"
#define PRIdLEAST32 "ld"
#define PRIdFAST8 "d"
#define PRIdFAST16 "d"
#define PRIdFAST32 "ld"
#define PRIdMAX "ld"
#define PRIdPTR "d"
#define PRIi8 "i"
#define PRIi16 "i"
#define PRIi32 "li"
#define PRIiLEAST8 "i"
#define PRIiLEAST16 "i"
#define PRIiLEAST32 "li"
#define PRIiFAST8 "i"
#define PRIiFAST16 "i"
#define PRIiFAST32 "li"
#define PRIiMAX "li"
#define PRIiPTR "i"
/* fprintf() macros for unsigned integers */
#define PRIo8 "o"
#define PRIo16 "o"
#define PRIo32 "lo"
#define PRIoLEAST8 "o"
#define PRIoLEAST16 "o"
#define PRIoLEAST32 "lo"
#define PRIoFAST8 "o"
#define PRIoFAST16 "o"
#define PRIoFAST32 "lo"
#define PRIoMAX "lo"
#define PRIoPTR "o"
#define PRIu8 "u"
#define PRIu16 "u"
#define PRIu32 "lu"
#define PRIuLEAST8 "u"
#define PRIuLEAST16 "u"
#define PRIuLEAST32 "lu"
#define PRIuFAST8 "u"
#define PRIuFAST16 "u"
#define PRIuFAST32 "lu"
#define PRIuMAX "lu"
#define PRIuPTR "u"
#define PRIx8 "x"
#define PRIx16 "x"
#define PRIx32 "lx"
#define PRIxLEAST8 "x"
#define PRIxLEAST16 "x"
#define PRIxLEAST32 "lx"
#define PRIxFAST8 "x"
#define PRIxFAST16 "x"
#define PRIxFAST32 "lx"
#define PRIxMAX "lx"
#define PRIxPTR "x"
#define PRIX8 "X"
#define PRIX16 "X"
#define PRIX32 "lX"
#define PRIXLEAST8 "X"
#define PRIXLEAST16 "X"
#define PRIXLEAST32 "lX"
#define PRIXFAST8 "X"
#define PRIXFAST16 "X"
#define PRIXFAST32 "lX"
#define PRIXMAX "lX"
#define PRIXPTR "X"
/* fscanf() macros for signed integers */
#define SCNd8 "hd"
#define SCNd16 "d"
#define SCNd32 "ld"
#define SCNdLEAST8 "hd"
#define SCNdLEAST16 "d"
#define SCNdLEAST32 "ld"
#define SCNdFAST8 "hd"
#define SCNdFAST16 "d"
#define SCNdFAST32 "ld"
#define SCNdMAX "ld"
#define SCNdPTR "d"
#define SCNi8 "hi"
#define SCNi16 "i"
#define SCNi32 "li"
#define SCNiLEAST8 "hi"
#define SCNiLEAST16 "i"
#define SCNiLEAST32 "li"
#define SCNiFAST8 "hi"
#define SCNiFAST16 "i"
#define SCNiFAST32 "li"
#define SCNiMAX "li"
#define SCNiPTR "i"
/* fscanf() macros for unsigned integers */
#define SCNo8 "ho"
#define SCNo16 "o"
#define SCNo32 "lo"
#define SCNoLEAST8 "ho"
#define SCNoLEAST16 "o"
#define SCNoLEAST32 "lo"
#define SCNoFAST8 "ho"
#define SCNoFAST16 "o"
#define SCNoFAST32 "lo"
#define SCNoMAX "lo"
#define SCNoPTR "o"
#define SCNu8 "hu"
#define SCNu16 "u"
#define SCNu32 "lu"
#define SCNuLEAST8 "hu"
#define SCNuLEAST16 "u"
#define SCNuLEAST32 "lu"
#define SCNuFAST8 "hu"
#define SCNuFAST16 "u"
#define SCNuFAST32 "lu"
#define SCNuMAX "lu"
#define SCNuPTR "u"
#define SCNx8 "hx"
#define SCNx16 "x"
#define SCNx32 "lx"
#define SCNxLEAST8 "hx"
#define SCNxLEAST16 "x"
#define SCNxLEAST32 "lx"
#define SCNxFAST8 "hx"
#define SCNxFAST16 "x"
#define SCNxFAST32 "lx"
#define SCNxMAX "lx"
#define SCNxPTR "x"
/* End of inttypes.h */
#endif