1/* 2 * stdint.h 3 */ 4 5#ifndef _STDINT_H 6#define _STDINT_H 7 8/* Exact types */ 9 10typedef signed char int8_t; 11typedef signed short int16_t; 12typedef signed int int32_t; 13typedef signed long long int64_t; 14 15typedef unsigned char uint8_t; 16typedef unsigned short uint16_t; 17typedef unsigned int uint32_t; 18typedef unsigned long long uint64_t; 19 20/* Small types */ 21 22typedef signed char int_least8_t; 23typedef signed short int_least16_t; 24typedef signed int int_least32_t; 25typedef signed long long int_least64_t; 26 27typedef unsigned char uint_least8_t; 28typedef unsigned short uint_least16_t; 29typedef unsigned int uint_least32_t; 30typedef unsigned long long uint_least64_t; 31 32/* Fast types */ 33 34typedef signed char int_fast8_t; 35typedef signed short int_fast16_t; 36typedef signed int int_fast32_t; 37typedef signed long long int_fast64_t; 38 39typedef unsigned char uint_fast8_t; 40typedef unsigned short uint_fast16_t; 41typedef unsigned int uint_fast32_t; 42typedef unsigned long long uint_fast64_t; 43 44/* Pointer types */ 45 46typedef int32_t intptr_t; 47typedef uint32_t uintptr_t; 48 49/* Maximal types */ 50 51typedef int64_t intmax_t; 52typedef uint64_t uintmax_t; 53 54/* 55 * To be strictly correct... 56 */ 57#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) 58 59# define INT8_MIN (-128) 60# define INT16_MIN (-32767-1) 61# define INT32_MIN (-2147483647-1) 62# define INT64_MIN (-9223372036854775807LL-1) 63 64# define INT8_MAX (127) 65# define INT16_MAX (32767) 66# define INT32_MAX (2147483647) 67# define INT64_MAX (9223372036854775807LL) 68 69# define UINT8_MAX (255U) 70# define UINT16_MAX (65535U) 71# define UINT32_MAX (4294967295U) 72# define UINT64_MAX (18446744073709551615ULL) 73 74# define INT_LEAST8_MIN (-128) 75# define INT_LEAST16_MIN (-32767-1) 76# define INT_LEAST32_MIN (-2147483647-1) 77# define INT_LEAST64_MIN (-9223372036854775807LL-1) 78 79# define INT_LEAST8_MAX (127) 80# define INT_LEAST16_MAX (32767) 81# define INT_LEAST32_MAX (2147483647) 82# define INT_LEAST64_MAX (9223372036854775807LL) 83 84# define UINT_LEAST8_MAX (255U) 85# define UINT_LEAST16_MAX (65535U) 86# define UINT_LEAST32_MAX (4294967295U) 87# define UINT_LEAST64_MAX (18446744073709551615ULL) 88 89# define INT_FAST8_MIN (-128) 90# define INT_FAST16_MIN (-32767-1) 91# define INT_FAST32_MIN (-2147483647-1) 92# define INT_FAST64_MIN (-9223372036854775807LL-1) 93 94# define INT_FAST8_MAX (127) 95# define INT_FAST16_MAX (32767) 96# define INT_FAST32_MAX (2147483647) 97# define INT_FAST64_MAX (9223372036854775807LL) 98 99# define UINT_FAST8_MAX (255U) 100# define UINT_FAST16_MAX (65535U) 101# define UINT_FAST32_MAX (4294967295U) 102# define UINT_FAST64_MAX (18446744073709551615ULL) 103 104# define INTPTR_MIN (-2147483647-1) 105# define INTPTR_MAX (2147483647) 106# define UINTPTR_MAX (4294967295U) 107 108# define INTMAX_MIN (-9223372036854775807LL-1) 109# define INTMAX_MAX (9223372036854775807LL) 110# define UINTMAX_MAX (18446744073709551615ULL) 111 112/* ptrdiff_t limit */ 113# define PTRDIFF_MIN (-2147483647-1) 114# define PTRDIFF_MAX (2147483647) 115 116/* sig_atomic_t limit */ 117# define SIG_ATOMIC_MIN (-2147483647-1) 118# define SIG_ATOMIC_MAX (2147483647) 119 120/* size_t limit */ 121# define SIZE_MAX (4294967295U) 122 123#endif /* STDC_LIMIT_MACROS */ 124 125#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) 126 127# define INT8_C(n) n 128# define INT16_C(n) n 129# define INT32_C(n) n 130# define INT64_C(n) n ## LL 131 132# define UINT8_C(n) n ## U 133# define UINT16_C(n) n ## U 134# define UINT32_C(n) n ## U 135# define UINT64_C(n) n ## ULL 136 137# define INTMAX_C(n) n ## LL 138# define UINTMAX_C(n) n ## ULL 139 140#endif /* STDC_CONSTANT_MACROS */ 141 142#endif /* _STDINT_H */ 143