Один из способов сделать это - убедиться, что они являются константами (доступны во время компиляции), изменив их на:
#define dp 0x01
#define a 0x02
#define b 0x04
#define c 0x08
#define d 0x10
#define e 0x20
#define f 0x40
#define g 0x80
Я бы не стал слишком беспокоиться о созданииих 1<<n
значения, поскольку количество раз, которое вам придется изменить, будет стремительно малым.
Изменение их на const int
, похоже, не поможет. Я подозреваю, что constexpr
было бы идеальным решением для этого, за исключением того факта, что это C ++: -)
Если у вас есть доступные двоичные константы, вы также можете захотеть увидеть что-то вроде:
static const int sevenSegMap[] = {
// .abcdefg
0b01111110, // or use 0xfe if no binary constants.
0b00110000,
: and so on
0b01111011,
};