Fix the [U]INT*_C() creation macros
The [U]INT*_C() macros were broken, because ## takes precedence over macro resolution.
This commit is contained in:
parent
f209f7b1e8
commit
ca9f626ba8
3 changed files with 32 additions and 42 deletions
|
@ -28,23 +28,23 @@ typedef unsigned long long uint64_t;
|
|||
#define _pri32 "l"
|
||||
#define _pri64 "ll"
|
||||
|
||||
#define _c8 ""
|
||||
#define _c16 ""
|
||||
#define _c32 "L"
|
||||
#define _c64 "LL"
|
||||
#define _cst8
|
||||
#define _cst16
|
||||
#define _cst32 L
|
||||
#define _cst64 LL
|
||||
|
||||
#define INT8_C(x) x
|
||||
#define INT16_C(x) x
|
||||
#define INT32_C(x) x ## L
|
||||
#define INT64_C(x) x ## LL
|
||||
|
||||
#define UINT8_C(x) x ## U
|
||||
#define UINT16_C(x) x ## U
|
||||
#define UINT32_C(x) x ## UL
|
||||
#define UINT64_C(x) x ## ULL
|
||||
|
||||
/* The rest of this is common to all models */
|
||||
|
||||
#define INT8_C(x) x ## _c8
|
||||
#define INT16_C(x) x ## _c16
|
||||
#define INT32_C(x) x ## _c32
|
||||
#define INT64_C(x) x ## _c64
|
||||
|
||||
#define UINT8_C(x) x ## U ## _c8
|
||||
#define UINT16_C(x) x ## U ## _c16
|
||||
#define UINT32_C(x) x ## U ## _c32
|
||||
#define UINT64_C(x) x ## U ## _c64
|
||||
|
||||
#define PRId8 _pri8 "d"
|
||||
#define PRId16 _pri16 "d"
|
||||
#define PRId32 _pri32 "d"
|
||||
|
|
|
@ -28,23 +28,18 @@ typedef unsigned long long uint64_t;
|
|||
#define _pri32 ""
|
||||
#define _pri64 "ll"
|
||||
|
||||
#define _c8 ""
|
||||
#define _c16 ""
|
||||
#define _c32 ""
|
||||
#define _c64 "LL"
|
||||
#define INT8_C(x) x
|
||||
#define INT16_C(x) x
|
||||
#define INT32_C(x) x
|
||||
#define INT64_C(x) x ## LL
|
||||
|
||||
#define UINT8_C(x) x ## U
|
||||
#define UINT16_C(x) x ## U
|
||||
#define UINT32_C(x) x ## U
|
||||
#define UINT64_C(x) x ## ULL
|
||||
|
||||
/* The rest of this is common to all models */
|
||||
|
||||
#define INT8_C(x) x ## _c8
|
||||
#define INT16_C(x) x ## _c16
|
||||
#define INT32_C(x) x ## _c32
|
||||
#define INT64_C(x) x ## _c64
|
||||
|
||||
#define UINT8_C(x) x ## U ## _c8
|
||||
#define UINT16_C(x) x ## U ## _c16
|
||||
#define UINT32_C(x) x ## U ## _c32
|
||||
#define UINT64_C(x) x ## U ## _c64
|
||||
|
||||
#define PRId8 _pri8 "d"
|
||||
#define PRId16 _pri16 "d"
|
||||
#define PRId32 _pri32 "d"
|
||||
|
|
|
@ -28,23 +28,18 @@ typedef unsigned long uint64_t;
|
|||
#define _pri32 ""
|
||||
#define _pri64 "l"
|
||||
|
||||
#define _c8 ""
|
||||
#define _c16 ""
|
||||
#define _c32 ""
|
||||
#define _c64 "L"
|
||||
#define INT8_C(x) x
|
||||
#define INT16_C(x) x
|
||||
#define INT32_C(x) x
|
||||
#define INT64_C(x) x ## L
|
||||
|
||||
#define UINT8_C(x) x ## U
|
||||
#define UINT16_C(x) x ## U
|
||||
#define UINT32_C(x) x ## U
|
||||
#define UINT64_C(x) x ## UL
|
||||
|
||||
/* The rest of this is common to all models */
|
||||
|
||||
#define INT8_C(x) x ## _c8
|
||||
#define INT16_C(x) x ## _c16
|
||||
#define INT32_C(x) x ## _c32
|
||||
#define INT64_C(x) x ## _c64
|
||||
|
||||
#define UINT8_C(x) x ## U ## _c8
|
||||
#define UINT16_C(x) x ## U ## _c16
|
||||
#define UINT32_C(x) x ## U ## _c32
|
||||
#define UINT64_C(x) x ## U ## _c64
|
||||
|
||||
#define PRId8 _pri8 "d"
|
||||
#define PRId16 _pri16 "d"
|
||||
#define PRId32 _pri32 "d"
|
||||
|
|
Loading…
Reference in a new issue