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