mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-04 12:52:15 +00:00
Introduce internal macros for __U/INT64_C to define the U/INT64_MAX/MIN
values properly. The previous definition only worked if __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS were defined at the same time.
This commit is contained in:
parent
19b0c9b246
commit
54c699c4cc
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=229494
@ -65,6 +65,14 @@
|
||||
|
||||
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
|
||||
|
||||
#ifdef __LP64__
|
||||
#define __INT64_C(c) (c ## L)
|
||||
#define __UINT64_C(c) (c ## UL)
|
||||
#else
|
||||
#define __INT64_C(c) (c ## LL)
|
||||
#define __UINT64_C(c) (c ## ULL)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* ISO/IEC 9899:1999
|
||||
* 7.18.2.1 Limits of exact-width integer types
|
||||
@ -73,19 +81,19 @@
|
||||
#define INT8_MIN (-0x7f-1)
|
||||
#define INT16_MIN (-0x7fff-1)
|
||||
#define INT32_MIN (-0x7fffffff-1)
|
||||
#define INT64_MIN (-INT64_C(0x7fffffffffffffff)-1)
|
||||
#define INT64_MIN (-__INT64_C(0x7fffffffffffffff)-1)
|
||||
|
||||
/* Maximum values of exact-width signed integer types. */
|
||||
#define INT8_MAX 0x7f
|
||||
#define INT16_MAX 0x7fff
|
||||
#define INT32_MAX 0x7fffffff
|
||||
#define INT64_MAX INT64_C(0x7fffffffffffffff)
|
||||
#define INT64_MAX __INT64_C(0x7fffffffffffffff)
|
||||
|
||||
/* Maximum values of exact-width unsigned integer types. */
|
||||
#define UINT8_MAX 0xff
|
||||
#define UINT16_MAX 0xffff
|
||||
#define UINT32_MAX 0xffffffff
|
||||
#define UINT64_MAX UINT64_C(0xffffffffffffffff)
|
||||
#define UINT64_MAX __UINT64_C(0xffffffffffffffff)
|
||||
|
||||
/*
|
||||
* ISO/IEC 9899:1999
|
||||
|
Loading…
Reference in New Issue
Block a user