Dr Andrew Scott G7VAV

My photo
 
April 2024
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5
6 7 8 9 10 11 12


stdint.h
001: /* Copyright (C) 1997,1998,1999,2000,2001,2006 Free Software Foundation, Inc.
002:    This file is part of the GNU C Library.
003: 
004:    The GNU C Library is free software; you can redistribute it and/or
005:    modify it under the terms of the GNU Lesser General Public
006:    License as published by the Free Software Foundation; either
007:    version 2.1 of the License, or (at your option) any later version.
008: 
009:    The GNU C Library is distributed in the hope that it will be useful,
010:    but WITHOUT ANY WARRANTY; without even the implied warranty of
011:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
012:    Lesser General Public License for more details.
013: 
014:    You should have received a copy of the GNU Lesser General Public
015:    License along with the GNU C Library; if not, write to the Free
016:    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
017:    02111-1307 USA.  */
018: 
019: /*
020:  *      ISO C99: 7.18 Integer types <stdint.h>
021:  */
022: 
023: #ifndef _STDINT_H
024: #define _STDINT_H       1
025: 
026: #include <features.h>
027: #include <bits/wchar.h>
028: #include <bits/wordsize.h>
029: 
030: /* Exact integral types.  */
031: 
032: /* Signed.  */
033: 
034: /* There is some amount of overlap with <sys/types.h> as known by inet code */
035: #ifndef __int8_t_defined
036: # define __int8_t_defined
037: typedef signed char             int8_t;
038: typedef short int               int16_t;
039: typedef int                     int32_t;
040: # if __WORDSIZE == 64
041: typedef long int                int64_t;
042: # else
043: __extension__
044: typedef long long int           int64_t;
045: # endif
046: #endif
047: 
048: /* Unsigned.  */
049: typedef unsigned char           uint8_t;
050: typedef unsigned short int      uint16_t;
051: #ifndef __uint32_t_defined
052: typedef unsigned int            uint32_t;
053: # define __uint32_t_defined
054: #endif
055: #if __WORDSIZE == 64
056: typedef unsigned long int       uint64_t;
057: #else
058: __extension__
059: typedef unsigned long long int  uint64_t;
060: #endif
061: 
062: 
063: /* Small types.  */
064: 
065: /* Signed.  */
066: typedef signed char             int_least8_t;
067: typedef short int               int_least16_t;
068: typedef int                     int_least32_t;
069: #if __WORDSIZE == 64
070: typedef long int                int_least64_t;
071: #else
072: __extension__
073: typedef long long int           int_least64_t;
074: #endif
075: 
076: /* Unsigned.  */
077: typedef unsigned char           uint_least8_t;
078: typedef unsigned short int      uint_least16_t;
079: typedef unsigned int            uint_least32_t;
080: #if __WORDSIZE == 64
081: typedef unsigned long int       uint_least64_t;
082: #else
083: __extension__
084: typedef unsigned long long int  uint_least64_t;
085: #endif
086: 
087: 
088: /* Fast types.  */
089: 
090: /* Signed.  */
091: typedef signed char             int_fast8_t;
092: #if __WORDSIZE == 64
093: typedef long int                int_fast16_t;
094: typedef long int                int_fast32_t;
095: typedef long int                int_fast64_t;
096: #else
097: typedef int                     int_fast16_t;
098: typedef int                     int_fast32_t;
099: __extension__
100: typedef long long int           int_fast64_t;
101: #endif
102: 
103: /* Unsigned.  */
104: typedef unsigned char           uint_fast8_t;
105: #if __WORDSIZE == 64
106: typedef unsigned long int       uint_fast16_t;
107: typedef unsigned long int       uint_fast32_t;
108: typedef unsigned long int       uint_fast64_t;
109: #else
110: typedef unsigned int            uint_fast16_t;
111: typedef unsigned int            uint_fast32_t;
112: __extension__
113: typedef unsigned long long int  uint_fast64_t;
114: #endif
115: 
116: 
117: /* Types for `void *' pointers.  */
118: #if __WORDSIZE == 64
119: # ifndef __intptr_t_defined
120: typedef long int                intptr_t;
121: #  define __intptr_t_defined
122: # endif
123: typedef unsigned long int       uintptr_t;
124: #else
125: # ifndef __intptr_t_defined
126: typedef int                     intptr_t;
127: #  define __intptr_t_defined
128: # endif
129: typedef unsigned int            uintptr_t;
130: #endif
131: 
132: 
133: /* Largest integral types.  */
134: #if __WORDSIZE == 64
135: typedef long int                intmax_t;
136: typedef unsigned long int       uintmax_t;
137: #else
138: __extension__
139: typedef long long int           intmax_t;
140: __extension__
141: typedef unsigned long long int  uintmax_t;
142: #endif
143: 
144: 
145: /* The ISO C99 standard specifies that in C++ implementations these
146:    macros should only be defined if explicitly requested.  */
147: #if !defined __cplusplus || defined __STDC_LIMIT_MACROS
148: 
149: # if __WORDSIZE == 64
150: #  define __INT64_C(c)  c ## L
151: #  define __UINT64_C(c) c ## UL
152: # else
153: #  define __INT64_C(c)  c ## LL
154: #  define __UINT64_C(c) c ## ULL
155: # endif
156: 
157: /* Limits of integral types.  */
158: 
159: /* Minimum of signed integral types.  */
160: # define INT8_MIN               (-128)
161: # define INT16_MIN              (-32767-1)
162: # define INT32_MIN              (-2147483647-1)
163: # define INT64_MIN              (-__INT64_C(9223372036854775807)-1)
164: /* Maximum of signed integral types.  */
165: # define INT8_MAX               (127)
166: # define INT16_MAX              (32767)
167: # define INT32_MAX              (2147483647)
168: # define INT64_MAX              (__INT64_C(9223372036854775807))
169: 
170: /* Maximum of unsigned integral types.  */
171: # define UINT8_MAX              (255)
172: # define UINT16_MAX             (65535)
173: # define UINT32_MAX             (4294967295U)
174: # define UINT64_MAX             (__UINT64_C(18446744073709551615))
175: 
176: 
177: /* Minimum of signed integral types having a minimum size.  */
178: # define INT_LEAST8_MIN         (-128)
179: # define INT_LEAST16_MIN        (-32767-1)
180: # define INT_LEAST32_MIN        (-2147483647-1)
181: # define INT_LEAST64_MIN        (-__INT64_C(9223372036854775807)-1)
182: /* Maximum of signed integral types having a minimum size.  */
183: # define INT_LEAST8_MAX         (127)
184: # define INT_LEAST16_MAX        (32767)
185: # define INT_LEAST32_MAX        (2147483647)
186: # define INT_LEAST64_MAX        (__INT64_C(9223372036854775807))
187: 
188: /* Maximum of unsigned integral types having a minimum size.  */
189: # define UINT_LEAST8_MAX        (255)
190: # define UINT_LEAST16_MAX       (65535)
191: # define UINT_LEAST32_MAX       (4294967295U)
192: # define UINT_LEAST64_MAX       (__UINT64_C(18446744073709551615))
193: 
194: 
195: /* Minimum of fast signed integral types having a minimum size.  */
196: # define INT_FAST8_MIN          (-128)
197: # if __WORDSIZE == 64
198: #  define INT_FAST16_MIN        (-9223372036854775807L-1)
199: #  define INT_FAST32_MIN        (-9223372036854775807L-1)
200: # else
201: #  define INT_FAST16_MIN        (-2147483647-1)
202: #  define INT_FAST32_MIN        (-2147483647-1)
203: # endif
204: # define INT_FAST64_MIN         (-__INT64_C(9223372036854775807)-1)
205: /* Maximum of fast signed integral types having a minimum size.  */
206: # define INT_FAST8_MAX          (127)
207: # if __WORDSIZE == 64
208: #  define INT_FAST16_MAX        (9223372036854775807L)
209: #  define INT_FAST32_MAX        (9223372036854775807L)
210: # else
211: #  define INT_FAST16_MAX        (2147483647)
212: #  define INT_FAST32_MAX        (2147483647)
213: # endif
214: # define INT_FAST64_MAX         (__INT64_C(9223372036854775807))
215: 
216: /* Maximum of fast unsigned integral types having a minimum size.  */
217: # define UINT_FAST8_MAX         (255)
218: # if __WORDSIZE == 64
219: #  define UINT_FAST16_MAX       (18446744073709551615UL)
220: #  define UINT_FAST32_MAX       (18446744073709551615UL)
221: # else
222: #  define UINT_FAST16_MAX       (4294967295U)
223: #  define UINT_FAST32_MAX       (4294967295U)
224: # endif
225: # define UINT_FAST64_MAX        (__UINT64_C(18446744073709551615))
226: 
227: 
228: /* Values to test for integral types holding `void *' pointer.  */
229: # if __WORDSIZE == 64
230: #  define INTPTR_MIN            (-9223372036854775807L-1)
231: #  define INTPTR_MAX            (9223372036854775807L)
232: #  define UINTPTR_MAX           (18446744073709551615UL)
233: # else
234: #  define INTPTR_MIN            (-2147483647-1)
235: #  define INTPTR_MAX            (2147483647)
236: #  define UINTPTR_MAX           (4294967295U)
237: # endif
238: 
239: 
240: /* Minimum for largest signed integral type.  */
241: # define INTMAX_MIN             (-__INT64_C(9223372036854775807)-1)
242: /* Maximum for largest signed integral type.  */
243: # define INTMAX_MAX             (__INT64_C(9223372036854775807))
244: 
245: /* Maximum for largest unsigned integral type.  */
246: # define UINTMAX_MAX            (__UINT64_C(18446744073709551615))
247: 
248: 
249: /* Limits of other integer types.  */
250: 
251: /* Limits of `ptrdiff_t' type.  */
252: # if __WORDSIZE == 64
253: #  define PTRDIFF_MIN           (-9223372036854775807L-1)
254: #  define PTRDIFF_MAX           (9223372036854775807L)
255: # else
256: #  define PTRDIFF_MIN           (-2147483647-1)
257: #  define PTRDIFF_MAX           (2147483647)
258: # endif
259: 
260: /* Limits of `sig_atomic_t'.  */
261: # define SIG_ATOMIC_MIN         (-2147483647-1)
262: # define SIG_ATOMIC_MAX         (2147483647)
263: 
264: /* Limit of `size_t' type.  */
265: # if __WORDSIZE == 64
266: #  define SIZE_MAX              (18446744073709551615UL)
267: # else
268: #  define SIZE_MAX              (4294967295U)
269: # endif
270: 
271: /* Limits of `wchar_t'.  */
272: # ifndef WCHAR_MIN
273: /* These constants might also be defined in <wchar.h>.  */
274: #  define WCHAR_MIN             __WCHAR_MIN
275: #  define WCHAR_MAX             __WCHAR_MAX
276: # endif
277: 
278: /* Limits of `wint_t'.  */
279: # define WINT_MIN               (0u)
280: # define WINT_MAX               (4294967295u)
281: 
282: #endif  /* C++ && limit macros */
283: 
284: 
285: /* The ISO C99 standard specifies that in C++ implementations these
286:    should only be defined if explicitly requested.  */
287: #if !defined __cplusplus || defined __STDC_CONSTANT_MACROS
288: 
289: /* Signed.  */
290: # define INT8_C(c)      c
291: # define INT16_C(c)     c
292: # define INT32_C(c)     c
293: # if __WORDSIZE == 64
294: #  define INT64_C(c)    c ## L
295: # else
296: #  define INT64_C(c)    c ## LL
297: # endif
298: 
299: /* Unsigned.  */
300: # define UINT8_C(c)     c
301: # define UINT16_C(c)    c
302: # define UINT32_C(c)    c ## U
303: # if __WORDSIZE == 64
304: #  define UINT64_C(c)   c ## UL
305: # else
306: #  define UINT64_C(c)   c ## ULL
307: # endif
308: 
309: /* Maximal type.  */
310: # if __WORDSIZE == 64
311: #  define INTMAX_C(c)   c ## L
312: #  define UINTMAX_C(c)  c ## UL
313: # else
314: #  define INTMAX_C(c)   c ## LL
315: #  define UINTMAX_C(c)  c ## ULL
316: # endif
317: 
318: #endif  /* C++ && constant macros */
319: 
320: #endif /* stdint.h */
321: 


for client 18.221.165.246
© Andrew Scott 2006 - 2024,
All Rights Reserved
http://www.andrew-scott.uk/
Andrew Scott
http://www.andrew-scott.co.uk/