Интересно, есть ли хороший способ получить требуемый сдвиг из битовой маски, примененной к переменной, без необходимости ее определения.
Простой пример:
#define MASK 0xf0
#define SHIFT 4
uint8_t var = 0x20;
uint8_t wanted = (var & MASK) >> SHIFT;
Как я могу избежать использования определения SHIFT, но все же получить тот же результат?