Macros for defining 64-bit literals portably.
Maximum and minimum values for integer types.
- Note
- Signed Max(iX) = (iX)(((uX)(~0)) >> 1) and Min(iX) = -Max(iX)-1 = 1 << (X-1)
-
Unsigned Max(uX) = (uX)(-1) = (uX)(~0) = (((uX)(Max(iX))) << 1) + 1
◆ I16_MAX
| #define I16_MAX ((i16)(((u16)(~0)) >> 1)) |
◆ I16_MIN
| #define I16_MIN ((i16)(1 << (15))) |
◆ I32_MAX
| #define I32_MAX ((i32)(((u32)(~0)) >> 1)) |
◆ I32_MIN
| #define I32_MIN ((i32)(1 << (31))) |
◆ I64_MAX
| #define I64_MAX ((i64)(((u64)(~0)) >> 1)) |
◆ I64_MIN
| #define I64_MIN ((i64)(1 << (63))) |
◆ I8_MAX
| #define I8_MAX ((i8)(((u8)(~0)) >> 1)) |
◆ I8_MIN
| #define I8_MIN ((i8)(1 << (7))) |
◆ LITERAL_I64
◆ LITERAL_U64
◆ U16_MAX
| #define U16_MAX ((u16)(~0)) |
◆ U32_MAX
| #define U32_MAX ((u32)(~0)) |
◆ U64_MAX
| #define U64_MAX ((u64)(~0)) |
◆ U8_MAX
| #define U8_MAX ((u8)(~0)) |