Я работаю над многими файлами C-исходного кода, которые содержат много операторов препроцессора #if
, #elseif
и #else
.
Это утверждение часто проверяется на #define
, например,
#if(Switch_TestMode == Switch_TestModeON)
/* code 1 */
#else
/*code 2 */
#endif
Часто эти операторы препроцессора находятся внутри операторов c-if, что делает исходный код почти нечитаемым для людей.
#define
, используемые для этого препроцессора #if
операторы определены в дополнительном файле.
Моя идея сейчас состоит в том, чтобы иметь инструмент, который проверяет настройки переключателя #define
d, а затем копирует только строки исходного кода, которые применяются с использованием текущих # define / switch settings.
В приведенном выше примере я хотел бы получить новый файл .c, который содержит только
/*code 2 */
предполагается, что #define
из Switch_TestMode
не равно Switch_TestModeON
.
Существуют ли инструменты (бесплатные || недорогие), которые выполняют эту работу?
Или я должен написать свой собственный анализатор препроцессора для этого?
(Я не могу запустить компилятор, используя специальный параметр, который выполняет эту работу, потому что наша компания создает C-исходный код, а другая компания компилирует.)
Спасибо за любую подсказку!
Привет
Thomas