1 /* flex integer type definitions */ 2 3 #ifndef FLEXINT_H 4 #define FLEXINT_H 5 6 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ 7 8 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 9 10 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, 11 * if you want the limit (max/min) macros for int types. 12 */ 13 #ifndef __STDC_LIMIT_MACROS 14 #define __STDC_LIMIT_MACROS 1 15 #endif 16 17 #include <inttypes.h> 18 typedef int8_t flex_int8_t; 19 typedef uint8_t flex_uint8_t; 20 typedef int16_t flex_int16_t; 21 typedef uint16_t flex_uint16_t; 22 typedef int32_t flex_int32_t; 23 typedef uint32_t flex_uint32_t; 24 #else 25 typedef signed char flex_int8_t; 26 typedef short int flex_int16_t; 27 typedef int flex_int32_t; 28 typedef unsigned char flex_uint8_t; 29 typedef unsigned short int flex_uint16_t; 30 typedef unsigned int flex_uint32_t; 31 32 /* Limits of integral types. */ 33 #ifndef INT8_MIN 34 #define INT8_MIN (-128) 35 #endif 36 #ifndef INT16_MIN 37 #define INT16_MIN (-32767-1) 38 #endif 39 #ifndef INT32_MIN 40 #define INT32_MIN (-2147483647-1) 41 #endif 42 #ifndef INT8_MAX 43 #define INT8_MAX (127) 44 #endif 45 #ifndef INT16_MAX 46 #define INT16_MAX (32767) 47 #endif 48 #ifndef INT32_MAX 49 #define INT32_MAX (2147483647) 50 #endif 51 #ifndef UINT8_MAX 52 #define UINT8_MAX (255U) 53 #endif 54 #ifndef UINT16_MAX 55 #define UINT16_MAX (65535U) 56 #endif 57 #ifndef UINT32_MAX 58 #define UINT32_MAX (4294967295U) 59 #endif 60 61 #ifndef SIZE_MAX 62 #define SIZE_MAX (~(size_t)0) 63 #endif 64 65 #endif /* ! C99 */ 66 67 #endif /* ! FLEXINT_H */ 68