Utility macros. More...
Macros | |
| #define | ARRAY_SIZE(arr) |
| Get number of elements in array. | |
| #define | BIT(n) |
| Create a bit mask. | |
| #define | CLAMP(x, lo, hi) |
| Clamp value to range. | |
| #define | HI_BYTE(x) |
| Get high byte of 16-bit value. | |
| #define | LO_BYTE(x) |
| Get low byte of 16-bit value. | |
| #define | MAKE_WORD(lo, hi) |
| Combine two bytes into 16-bit value. | |
| #define | MAX(a, b) |
| Get maximum of two values. | |
| #define | MIN(a, b) |
| Get minimum of two values. | |
| #define | NULL ((void*)0) |
| Null pointer constant. | |
Utility macros.
| #define ARRAY_SIZE | ( | arr | ) |
Get number of elements in array.
| arr | Array variable |
| #define BIT | ( | n | ) |
Create a bit mask.
| n | Bit number (0-15) |
Uses 1u (unsigned) so that BIT(15) == 0x8000 holds under cc65816's 16-bit int (since chantier A1, 2026-05-08). With signed 1, 1 << 15 overflows to -32768 on a 16-bit int and compares unequal to the (long-promoted) 0x8000 literal.
| #define CLAMP | ( | x, | |
| lo, | |||
| hi ) |
Clamp value to range.
| x | Value to clamp |
| lo | Minimum value |
| hi | Maximum value |
| #define HI_BYTE | ( | x | ) |
| #define LO_BYTE | ( | x | ) |
| #define MAKE_WORD | ( | lo, | |
| hi ) |
| #define NULL ((void*)0) |
Null pointer constant.