Как инициализировать глобальный массив внешней переменной?

Пусть имеются два файла с исходным кодом. В первом объявим extern-переменную variable и попытаемся инициализировать ей массив:

// first.c

extern const int variable;

int values[4] = {0, variable, 0, 0};

int main() {}

Во втором объявим и инициализируем саму переменную variable:

// second.c

const int variable = 123;

Попытаемся скомпилировать:

gcc -o test first.c second.c

На этапе компиляции возникнет ошибка:

first.c:5:22: error: initializer element is not constant

Хотя на этапе линковки она (по идее) может быть разрешена. Подскажите, пожалуйста, есть ли какой-то способ решить эту проблему, кроме слияния исходных файлов?


Ответы (0 шт):