Вот! Поэтому готовый проект, я сохраняю в виде виртуальной машины.
Народ из зала подсказывает, что можно сохранять не машину, а
контейнер. Но я до такого ещё не дошёл и на моём уровне понимания,
целая виртуальная машина - надёжнее. Насчёт дефайнов:
Я делаю так:
В config.h объявляю тип союза и в виде дефайнов - значения членов структуры союза.
В config.c определяю значение константы в виде compound literal, как у вас.
И в нужные исходники добавляю config.h, чтобы получить тип союза и и внешнюю константу (которая определена в одном месте - не спутаешь).
Единственное, чего не помню, можно ли союз и объявление константы extern, сделать в одном заголовочном файле и этот заголовочный файл, включить в файл с определением константы? Получится ли сделать определение в *.c, если в подключённом заголовке константа уже объявлена? Если объявление типа союза сделано в одном файле заголовка, а объявление константы сделано в другом, то так точно заработает: в файл с определением добавляем объявление типа союза, но не добавляем объявление константы extern.