Как инициализировать глобальный массив внешней переменной?
Пусть имеются два файла с исходным кодом. В первом объявим 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
Хотя на этапе линковки она (по идее) может быть разрешена. Подскажите, пожалуйста, есть ли какой-то способ решить эту проблему, кроме слияния исходных файлов?