kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

inttypes.h (5483B)


      1 /* inttypes.h -- integer format macros and greatest-width conversions */
      2 #ifndef KIT_INTTYPES_H
      3 #define KIT_INTTYPES_H
      4 
      5 #include <stdint.h>
      6 
      7 typedef struct {
      8   intmax_t quot;
      9   intmax_t rem;
     10 } imaxdiv_t;
     11 
     12 intmax_t imaxabs(intmax_t j);
     13 imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom);
     14 intmax_t strtoimax(const char* restrict nptr, char** restrict endptr, int base);
     15 uintmax_t strtoumax(const char* restrict nptr, char** restrict endptr,
     16                     int base);
     17 
     18 #if __SIZEOF_LONG__ == 8
     19 #define __KIT_PRI64 "l"
     20 #define __KIT_SCN64 "l"
     21 #define __KIT_PRIMAX "l"
     22 #define __KIT_SCNMAX "l"
     23 #else
     24 #define __KIT_PRI64 "ll"
     25 #define __KIT_SCN64 "ll"
     26 #define __KIT_PRIMAX "ll"
     27 #define __KIT_SCNMAX "ll"
     28 #endif
     29 
     30 #if __SIZEOF_POINTER__ == __SIZEOF_LONG__
     31 #define __KIT_PRIPTR "l"
     32 #define __KIT_SCNPTR "l"
     33 #else
     34 #define __KIT_PRIPTR "ll"
     35 #define __KIT_SCNPTR "ll"
     36 #endif
     37 
     38 #if __SIZEOF_POINTER__ == 8
     39 #define __KIT_PRIFAST16 __KIT_PRI64
     40 #define __KIT_PRIFAST32 __KIT_PRI64
     41 #define __KIT_SCNFAST16 __KIT_SCN64
     42 #define __KIT_SCNFAST32 __KIT_SCN64
     43 #else
     44 #define __KIT_PRIFAST16 ""
     45 #define __KIT_PRIFAST32 ""
     46 #define __KIT_SCNFAST16 ""
     47 #define __KIT_SCNFAST32 ""
     48 #endif
     49 
     50 #define PRId8 "d"
     51 #define PRIi8 "i"
     52 #define PRIo8 "o"
     53 #define PRIu8 "u"
     54 #define PRIx8 "x"
     55 #define PRIX8 "X"
     56 #define PRId16 "d"
     57 #define PRIi16 "i"
     58 #define PRIo16 "o"
     59 #define PRIu16 "u"
     60 #define PRIx16 "x"
     61 #define PRIX16 "X"
     62 #define PRId32 "d"
     63 #define PRIi32 "i"
     64 #define PRIo32 "o"
     65 #define PRIu32 "u"
     66 #define PRIx32 "x"
     67 #define PRIX32 "X"
     68 #define PRId64 __KIT_PRI64 "d"
     69 #define PRIi64 __KIT_PRI64 "i"
     70 #define PRIo64 __KIT_PRI64 "o"
     71 #define PRIu64 __KIT_PRI64 "u"
     72 #define PRIx64 __KIT_PRI64 "x"
     73 #define PRIX64 __KIT_PRI64 "X"
     74 
     75 #define PRIdLEAST8 PRId8
     76 #define PRIiLEAST8 PRIi8
     77 #define PRIoLEAST8 PRIo8
     78 #define PRIuLEAST8 PRIu8
     79 #define PRIxLEAST8 PRIx8
     80 #define PRIXLEAST8 PRIX8
     81 #define PRIdLEAST16 PRId16
     82 #define PRIiLEAST16 PRIi16
     83 #define PRIoLEAST16 PRIo16
     84 #define PRIuLEAST16 PRIu16
     85 #define PRIxLEAST16 PRIx16
     86 #define PRIXLEAST16 PRIX16
     87 #define PRIdLEAST32 PRId32
     88 #define PRIiLEAST32 PRIi32
     89 #define PRIoLEAST32 PRIo32
     90 #define PRIuLEAST32 PRIu32
     91 #define PRIxLEAST32 PRIx32
     92 #define PRIXLEAST32 PRIX32
     93 #define PRIdLEAST64 PRId64
     94 #define PRIiLEAST64 PRIi64
     95 #define PRIoLEAST64 PRIo64
     96 #define PRIuLEAST64 PRIu64
     97 #define PRIxLEAST64 PRIx64
     98 #define PRIXLEAST64 PRIX64
     99 
    100 #define PRIdFAST8 "d"
    101 #define PRIiFAST8 "i"
    102 #define PRIoFAST8 "o"
    103 #define PRIuFAST8 "u"
    104 #define PRIxFAST8 "x"
    105 #define PRIXFAST8 "X"
    106 #define PRIdFAST16 __KIT_PRIFAST16 "d"
    107 #define PRIiFAST16 __KIT_PRIFAST16 "i"
    108 #define PRIoFAST16 __KIT_PRIFAST16 "o"
    109 #define PRIuFAST16 __KIT_PRIFAST16 "u"
    110 #define PRIxFAST16 __KIT_PRIFAST16 "x"
    111 #define PRIXFAST16 __KIT_PRIFAST16 "X"
    112 #define PRIdFAST32 __KIT_PRIFAST32 "d"
    113 #define PRIiFAST32 __KIT_PRIFAST32 "i"
    114 #define PRIoFAST32 __KIT_PRIFAST32 "o"
    115 #define PRIuFAST32 __KIT_PRIFAST32 "u"
    116 #define PRIxFAST32 __KIT_PRIFAST32 "x"
    117 #define PRIXFAST32 __KIT_PRIFAST32 "X"
    118 #define PRIdFAST64 PRId64
    119 #define PRIiFAST64 PRIi64
    120 #define PRIoFAST64 PRIo64
    121 #define PRIuFAST64 PRIu64
    122 #define PRIxFAST64 PRIx64
    123 #define PRIXFAST64 PRIX64
    124 
    125 #define PRIdMAX __KIT_PRIMAX "d"
    126 #define PRIiMAX __KIT_PRIMAX "i"
    127 #define PRIoMAX __KIT_PRIMAX "o"
    128 #define PRIuMAX __KIT_PRIMAX "u"
    129 #define PRIxMAX __KIT_PRIMAX "x"
    130 #define PRIXMAX __KIT_PRIMAX "X"
    131 
    132 #define PRIdPTR __KIT_PRIPTR "d"
    133 #define PRIiPTR __KIT_PRIPTR "i"
    134 #define PRIoPTR __KIT_PRIPTR "o"
    135 #define PRIuPTR __KIT_PRIPTR "u"
    136 #define PRIxPTR __KIT_PRIPTR "x"
    137 #define PRIXPTR __KIT_PRIPTR "X"
    138 
    139 #define SCNd8 "hhd"
    140 #define SCNi8 "hhi"
    141 #define SCNo8 "hho"
    142 #define SCNu8 "hhu"
    143 #define SCNx8 "hhx"
    144 #define SCNd16 "hd"
    145 #define SCNi16 "hi"
    146 #define SCNo16 "ho"
    147 #define SCNu16 "hu"
    148 #define SCNx16 "hx"
    149 #define SCNd32 "d"
    150 #define SCNi32 "i"
    151 #define SCNo32 "o"
    152 #define SCNu32 "u"
    153 #define SCNx32 "x"
    154 #define SCNd64 __KIT_SCN64 "d"
    155 #define SCNi64 __KIT_SCN64 "i"
    156 #define SCNo64 __KIT_SCN64 "o"
    157 #define SCNu64 __KIT_SCN64 "u"
    158 #define SCNx64 __KIT_SCN64 "x"
    159 
    160 #define SCNdLEAST8 SCNd8
    161 #define SCNiLEAST8 SCNi8
    162 #define SCNoLEAST8 SCNo8
    163 #define SCNuLEAST8 SCNu8
    164 #define SCNxLEAST8 SCNx8
    165 #define SCNdLEAST16 SCNd16
    166 #define SCNiLEAST16 SCNi16
    167 #define SCNoLEAST16 SCNo16
    168 #define SCNuLEAST16 SCNu16
    169 #define SCNxLEAST16 SCNx16
    170 #define SCNdLEAST32 SCNd32
    171 #define SCNiLEAST32 SCNi32
    172 #define SCNoLEAST32 SCNo32
    173 #define SCNuLEAST32 SCNu32
    174 #define SCNxLEAST32 SCNx32
    175 #define SCNdLEAST64 SCNd64
    176 #define SCNiLEAST64 SCNi64
    177 #define SCNoLEAST64 SCNo64
    178 #define SCNuLEAST64 SCNu64
    179 #define SCNxLEAST64 SCNx64
    180 
    181 #define SCNdFAST8 SCNd8
    182 #define SCNiFAST8 SCNi8
    183 #define SCNoFAST8 SCNo8
    184 #define SCNuFAST8 SCNu8
    185 #define SCNxFAST8 SCNx8
    186 #define SCNdFAST16 __KIT_SCNFAST16 "d"
    187 #define SCNiFAST16 __KIT_SCNFAST16 "i"
    188 #define SCNoFAST16 __KIT_SCNFAST16 "o"
    189 #define SCNuFAST16 __KIT_SCNFAST16 "u"
    190 #define SCNxFAST16 __KIT_SCNFAST16 "x"
    191 #define SCNdFAST32 __KIT_SCNFAST32 "d"
    192 #define SCNiFAST32 __KIT_SCNFAST32 "i"
    193 #define SCNoFAST32 __KIT_SCNFAST32 "o"
    194 #define SCNuFAST32 __KIT_SCNFAST32 "u"
    195 #define SCNxFAST32 __KIT_SCNFAST32 "x"
    196 #define SCNdFAST64 SCNd64
    197 #define SCNiFAST64 SCNi64
    198 #define SCNoFAST64 SCNo64
    199 #define SCNuFAST64 SCNu64
    200 #define SCNxFAST64 SCNx64
    201 
    202 #define SCNdMAX __KIT_SCNMAX "d"
    203 #define SCNiMAX __KIT_SCNMAX "i"
    204 #define SCNoMAX __KIT_SCNMAX "o"
    205 #define SCNuMAX __KIT_SCNMAX "u"
    206 #define SCNxMAX __KIT_SCNMAX "x"
    207 
    208 #define SCNdPTR __KIT_SCNPTR "d"
    209 #define SCNiPTR __KIT_SCNPTR "i"
    210 #define SCNoPTR __KIT_SCNPTR "o"
    211 #define SCNuPTR __KIT_SCNPTR "u"
    212 #define SCNxPTR __KIT_SCNPTR "x"
    213 
    214 #define __STDC_VERSION_INTTYPES_H__ 202311L
    215 
    216 #endif