Как уже отмечалось в других ответах, вы можете использовать механизм преобразования программ для автоматизации генерации таких заголовков из исходного кода C.
Однако, что вам действительно нужно, это механизм трансформации программы, который уже понимает C, потому что синтаксический анализ C и знание типов являются очень сложной задачей. (Спросите парней из компилятора GNU или просто посмотрите исходный код GCC). Чистые системы преобразования (например, те, которые не имеют C-интерфейсов) будут плохо обслуживать вас, поскольку вам придется самостоятельно генерировать все эти данные таблицы символов.
DMS Software Reengineering Toolkit - это полнофункциональное преобразование программы, которое имеет
полнофункциональный внешний интерфейс C , включая препроцессор, построение AST, построение таблицы символов, анализ управления и потока данных, анализ точек наведения, построение графа вызовов, ... Все эти результаты можно использовать в процесс преобразования, чтобы облегчить вашу работу.
Как и в других системах трансформации программ, существует крутая кривая обучения. Тем не менее, вам необходимо сравнить это со стоимостью а) отсутствия ответа и многократного выполнения всего этого перевода вручную, и б) стоимости создания собственного внешнего интерфейса С, и в) это значительно повышает вероятность того, что вы на самом деле получить результат, который работает. С этой точки зрения, ИМХО, это очень дешево.