Roman Saveljev

Утилита для разделения частей заголовка C на основе определений


Линукс Командная строка С Софт

NB! Это не препроцессор, а cpp -E не создает хороший результат.

Ищете небольшую утилиту командной строки, которая разделяет условно скомпилированные части файлов заголовков на основе параметров (предпочтительны CLI-параметры или переменные среды, но config также будет работать).

Пример ввода:

 #ifdef A #define B 1 #else #define B 2 #endif 

Пример вывода:

 #define B 2 

Я нашел его один раз (что-то вроде undef или undefine ), но не могу его запомнить .. Спасибо.

Ответы


Gilles

Думаю, ты помнишь unifdef . Он понимает определения, переданные в командной строке, включая арифметику. Он не анализирует макроопределения внутри файла, а только условные. Он может анализировать некоторые C-препроцессоры-выражения.

 $ cat foo #ifdef A #define B 1 #else #define B 2 #endif #if A == 0x01 aye #endif #if B == 1 bee #endif $ unifdef -DA=0 foo #define B 1 #if B == 1 bee #endif 
Roman Saveljev
Да! Я также нашел этот старый вопрос SO с рядом других предложений - stackoverflow.com/questions/525283/...

Roman Saveljev

unifdef отвечает на исходный вопрос, но более современные варианты:

Смотри также