Я не думаю, что вы можете сделать это так, как вы наметили в «пассивном» режиме. То есть вы собираетесь каким-то образом запускать код для каждого исходного файла, который будет добавлен в реестр, трудно заставить его выполняться автоматически.
Конечно, возможно, что вы можете сделать этот код очень ненавязчивым, используя макросы. Это может быть проблематично для исходных файлов C, которые не имеют «точки входа», поэтому, если ваш код еще не организован как «модули», например, с. init()
функция для каждого модуля, это может быть сложно. Статический код инициализации может быть возможен, я не уверен на 100%, если порядок, в котором происходит инициализация, создает проблемы здесь.
Использование static
хранилища в модуле реестра звучит как отличная идея: простой связанный список или простая хеш-таблица должны быть достаточно простыми для реализации, если ваш проект еще не включает в себя универсальную служебную библиотеку. *