В чём проблема при инициализация структуры с массивом внутри?
Начал переползать с C++ на C в CubeIDE и столкнулся с тем, что не могу проинициализировать структуру с массивом внутри.
typedef uint16_t raw_value_t;
typedef int16_t temp_value_t;
typedef struct
{
raw_value_t raw_value;
temp_value_t temp_value;
} calibration_entry_t;
typedef struct
{
uint8_t P;
uint8_t I;
uint8_t D;
calibration_entry_t calibration_table[4];
} tools_t;
calibration_entry_t DEF_CAL_TABLE_IRON[4] =
{
{DEF_IRON_TOOL_T0, DEF_IRON_TOOL_ADC0},
{DEF_IRON_TOOL_T1, DEF_IRON_TOOL_ADC1},
{DEF_IRON_TOOL_T2, DEF_IRON_TOOL_ADC2},
{DEF_IRON_TOOL_T3, DEF_IRON_TOOL_ADC3},
};
tools_t DEF_IRON_tools =
{
DEF_IRON_TOOL_P,
DEF_IRON_TOOL_I,
DEF_IRON_TOOL_D,
DEF_CAL_TABLE_IRON[4], // <- здесь
};
Все DEF_ - значения по умолчанию из конфигурационного файла подключаемого ранее.
Собственно, компилятор ожидает от меня константного значения таблицы.
Что я делаю не так?