]> pd.if.org Git - pdclib/blob - includes/inttypes.h
Started introducting "personality".
[pdclib] / includes / inttypes.h
1 // ----------------------------------------------------------------------------
2 // $Id$
3 // ----------------------------------------------------------------------------
4 // Public Domain C Library - http://pdclib.sourceforge.net
5 // This code is Public Domain. Use, modify, and redistribute at will.
6 // ----------------------------------------------------------------------------
7 // Format conversion of integer types
8 // ----------------------------------------------------------------------------
9
10 #ifndef __INTTYPES_H
11 #define __INTTYPES_H __INTTYPES_H
12
13 // TODO: Documentation
14
15 // ----------------------------------------------------------------------------
16 // TYPEDEFS
17
18 typedef struct
19 {
20  intmax_t quotient,
21  intmax_t remainder;
22 }
23 imaxdiv_t;
24
25 // ----------------------------------------------------------------------------
26 // FUNCTIONS - C++
27
28 #ifdef __cplusplus
29 intmax_t abs( intmax_t i );
30 imaxdiv_t div( intmax_t numer, intmax_t denom );
31 #endif __cplusplus
32
33 // ----------------------------------------------------------------------------
34 // FUNCTIONS - Standard C
35
36 intmax_t imaxabs( intmax_t i );
37 imaxdiv_t imaxdiv( intmax_t numer, intmax_t denom );
38
39 intmax_t strtoimax( const char * restrict s, char * * restrict endptr, int base );
40 uintmax_t strtoumax( const char * restrict s, char * * restrict endptr, int base );
41 intmax_t wcstoimax( const wchar_t * restrict s, wchar_t * * restrict endptr, int base );
42 uintmax_t wcstoumax( const wchar_t * restrict s, wchar_t * * restrict endptr, int base );
43
44 // ----------------------------------------------------------------------------
45 // MACROS (PRINT)
46
47 #define PRId8
48 #define PRId16
49 #define PRId32
50 #define PRId64
51
52 #define PRIdFAST8
53 #define PRIdFAST16
54 #define PRIdFAST32
55 #define PRIdFAST64
56
57 #define PRIdLEAST8
58 #define PRIdLEAST16
59 #define PRIdLEAST32
60 #define PRIdLEAST64
61
62 #define PRIdMAX
63 #define PRIdPTR
64
65 #define PRIi8
66 #define PRIi16
67 #define PRIi32
68 #define PRIi64
69
70 #define PRIiFAST8
71 #define PRIiFAST16
72 #define PRIiFAST32
73 #define PRIiFAST64
74
75 #define PRIiLEAST8
76 #define PRIiLEAST16
77 #define PRIiLEAST32
78 #define PRIiLEAST64
79
80 #define PRIiMAX
81 #define PRIiPTR
82
83 #define PRIo8
84 #define PRIo16
85 #define PRIo32
86 #define PRIo64
87
88 #define PRIoFAST8
89 #define PRIoFAST16
90 #define PRIoFAST32
91 #define PRIoFAST64
92
93 #define PRIoLEAST8
94 #define PRIoLEAST16
95 #define PRIoLEAST32
96 #define PRIoLEAST64
97
98 #define PRIoMAX
99 #define PRIoPTR
100
101 #define PRIu8
102 #define PRIu16
103 #define PRIu32
104 #define PRIu64
105
106 #define PRIuFAST8
107 #define PRIuFAST16
108 #define PRIuFAST32
109 #define PRIuFAST64
110
111 #define PRIuLEAST8
112 #define PRIuLEAST16
113 #define PRIuLEAST32
114 #define PRIuLEAST64
115
116 #define PRIuMAX
117 #define PRIuPTR
118
119 #define PRIx8
120 #define PRIx16
121 #define PRIx32
122 #define PRIx64
123
124 #define PRIxFAST8
125 #define PRIxFAST16
126 #define PRIxFAST32
127 #define PRIxFAST64
128
129 #define PRIxLEAST8
130 #define PRIxLEAST16
131 #define PRIxLEAST32
132 #define PRIxLEAST64
133
134 #define PRIxMAX
135 #define PRIxPTR
136
137 #define PRIX8
138 #define PRIX16
139 #define PRIX32
140 #define PRIX64
141
142 #define PRIXFAST8
143 #define PRIXFAST16
144 #define PRIXFAST32
145 #define PRIXFAST64
146
147 #define PRIXLEAST8
148 #define PRIXLEAST16
149 #define PRIXLEAST32
150 #define PRIXLEAST64
151
152 #define PRIXMAX
153 #define PRIXPTR
154
155 // ----------------------------------------------------------------------------
156 // MACROS (SCAN)
157
158 #define SCNd8
159 #define SCNd16
160 #define SCNd32
161 #define SCNd64
162
163 #define SCNdFAST8
164 #define SCNdFAST16
165 #define SCNdFAST32
166 #define SCNdFAST64
167
168 #define SCNdLEAST8
169 #define SCNdLEAST16
170 #define SCNdLEAST32
171 #define SCNdLEAST64
172
173 #define SCNdMAX
174 #define SCNdPTR
175
176 #define SCNi8
177 #define SCNi16
178 #define SCNi32
179 #define SCNi64
180
181 #define SCNiFAST8
182 #define SCNiFAST16
183 #define SCNiFAST32
184 #define SCNiFAST64
185
186 #define SCNiLEAST8
187 #define SCNiLEAST16
188 #define SCNiLEAST32
189 #define SCNiLEAST64
190
191 #define SCNiMAX
192 #define SCNiPTR
193
194 #define SCNo8
195 #define SCNo16
196 #define SCNo32
197 #define SCNo64
198
199 #define SCNoFAST8
200 #define SCNoFAST16
201 #define SCNoFAST32
202 #define SCNoFAST64
203
204 #define SCNoLEAST8
205 #define SCNoLEAST16
206 #define SCNoLEAST32
207 #define SCNoLEAST64
208
209 #define SCNoMAX
210 #define SCNoPTR
211
212 #define SCNu8
213 #define SCNu16
214 #define SCNu32
215 #define SCNu64
216
217 #define SCNuFAST8
218 #define SCNuFAST16
219 #define SCNuFAST32
220 #define SCNuFAST64
221
222 #define SCNuLEAST8
223 #define SCNuLEAST16
224 #define SCNuLEAST32
225 #define SCNuLEAST64
226
227 #define SCNuMAX
228 #define SCNuPTR
229
230 #define SCNx8
231 #define SCNx16
232 #define SCNx32
233 #define SCNx64
234
235 #define SCNxFAST8
236 #define SCNxFAST16
237 #define SCNxFAST32
238 #define SCNxFAST64
239
240 #define SCNxLEAST8
241 #define SCNxLEAST16
242 #define SCNxLEAST32
243 #define SCNxLEAST64
244
245 #define SCNxMAX
246 #define SCNxPTR
247
248 #define SCNX8
249 #define SCNX16
250 #define SCNX32
251 #define SCNX64
252
253 #define SCNXFAST8
254 #define SCNXFAST16
255 #define SCNXFAST32
256 #define SCNXFAST64
257
258 #define SCNXLEAST8
259 #define SCNXLEAST16
260 #define SCNXLEAST32
261 #define SCNXLEAST64
262
263 #define SCNXMAX
264 #define SCNXPTR
265
266 #endif // __INTTYPES_H