1 /* ///////////////////////////////////////////////////////////////////////
7 * Brief: The type definition
10 * Copyright (c) 2008-2020, Waruqi All rights reserved.
11 * //////////////////////////////////////////////////////////////////// */
12 #ifndef EXTL_TYPE_DEF_H
13 #define EXTL_TYPE_DEF_H
15 /* ///////////////////////////////////////////////////////////////////////
18 #include "../config/config.h"
19 #include "../utility/static_assert.h"
21 /* ///////////////////////////////////////////////////////////////////////
27 #ifdef EXTL_8BIT_INT_SUPPORT
28 typedef EXTL_SI08_BASE_TYPE e_int8_t
;
29 typedef EXTL_SI08_BASE_TYPE e_sint8_t
;
30 typedef EXTL_UI08_BASE_TYPE e_uint8_t
;
31 typedef e_uint8_t e_byte_t
;
33 # error Extl requires 8-bit integer support.
37 #ifdef EXTL_16BIT_INT_SUPPORT
38 typedef EXTL_SI16_BASE_TYPE e_int16_t
;
39 typedef EXTL_SI16_BASE_TYPE e_sint16_t
;
40 typedef EXTL_UI16_BASE_TYPE e_uint16_t
;
42 # error Extl requires 16-bit integer support.
46 #ifdef EXTL_32BIT_INT_SUPPORT
47 typedef EXTL_SI32_BASE_TYPE e_int32_t
;
48 typedef EXTL_SI32_BASE_TYPE e_sint32_t
;
49 typedef EXTL_UI32_BASE_TYPE e_uint32_t
;
51 # error Extl requires 32-bit integer support.
55 #ifdef EXTL_64BIT_INT_SUPPORT
56 typedef EXTL_SI64_BASE_TYPE e_int64_t
;
57 typedef EXTL_SI64_BASE_TYPE e_sint64_t
;
58 typedef EXTL_UI64_BASE_TYPE e_uint64_t
;
61 typedef short e_short_t
;
63 typedef signed int e_sint_t
;
64 typedef unsigned int e_uint_t
;
65 typedef long e_long_t
;
66 typedef unsigned long e_ulong_t
;
69 #ifdef EXTL_NATIVE_BOOL_SUPPORT
70 typedef bool e_bool_t
;
71 # define e_true_v (true)
72 # define e_false_v (false)
74 typedef unsigned int e_bool_t
;
76 # define e_false_v (0)
80 typedef double e_float_t
;
83 #if defined(EXTL_NATIVE_WCHAR_T_SUPPORT) || \
84 defined(EXTL_TYPEDEF_WCHAR_T_SUPPORT)
85 typedef wchar_t e_wchar_t
;
87 typedef unsigned short e_wchar_t
;
91 typedef char e_char_t
;
95 typedef e_wchar_t e_tchar_t
;
97 typedef e_char_t e_tchar_t
;
101 #ifdef _SIZE_T_DEFINED
102 typedef size_t e_size_t
;
104 typedef unsigned int e_size_t
;
108 #ifdef _PTRDIFF_T_DEFINED
109 typedef ptrdiff_t e_ptrdiff_t
;
111 typedef int e_ptrdiff_t
;
114 /* ///////////////////////////////////////////////////////////////////////
117 #ifdef EXTL_TYPE_SIZE_TEST_ENABLE
118 # include "unit_test/type_size_test.h"
121 /* ///////////////////////////////////////////////////////////////////////
126 /* //////////////////////////////////////////////////////////////////// */
127 #endif /* EXTL_TYPE_DEF_H */
128 /* //////////////////////////////////////////////////////////////////// */