У меня есть постоянная таблицы перекодировкиИнициализация постоянная от постоянной справочной таблицы
static const uint32_t lut [] = {0, 20, 100, 350, 560};
У меня есть на структуру
typedef struct {
uint32_t value;
const char * name;
} strct_t;
И я хотел бы создать глобального постоянного экземпляра этой структуры
const struct_t def_myname = {
.value = lut[DEF_MYNAME_ID],
.name = "myname",
};
но я должен указать DEF_MYNAME_ID
в другом месте, так что у меня есть это в какой-то файл заголовка
#define DEF_MYNAME_ID 3
Это не может компилировать, из-за этой ошибки initializer element is not constant
Есть несколько вопросов в StackOverflow просят, что делать с initializer element is not constant
, но ни один покрывает мои потребности.
Есть ли способ, как это сделать? Например, определяя lut
как макрос? Мне это не нужно в другом месте.
Есть ли что-то вроде
#define LUT(a) ...
usabele константным инициализаторе?
Хорошее решение, спасибо! – j123b567