Как просмотреть вывод, созданный предварительным процессором C, до его преобразования в объектный файл?
Я хочу посмотреть, что делают определения MACRO для моего кода.
Ответ 1
gcc -E file.c
или
g++ -E file.cpp
сделает это за вас. Переключатель -E заставляет компилятор останавливаться после фазы предварительной обработки, плюя все полученные в данный момент на стандартный вывод.
Примечание. У вас должно быть несколько директив #include. Включенные файлы также получают предварительную обработку, поэтому вы можете получить много результатов.
Для Visual С++ коммутатор /E, который выводит вывод препроцессора на экран.
Ответ 2
Для GCC,
gcc -E -dM file.c
или
g++ -E -dM file.cpp
должен выполнить эту работу. -dM, поскольку руководство для препроцессора GNU помещает его, должно сгенерировать список директив #define для всех макросов, определенных во время выполнения препроцессора, включая предопределенные макросы.
Ответ 3
Вы также можете напрямую вызвать препроцессор C.
cpp infile outfile
Зайдите man cpp для получения дополнительной информации.
Ответ 4
Это зависит от используемого вами компилятора.
С помощью GCC вы можете указать флаг -E в командной строке, чтобы компилятор выдал выходной сигнал перед процессором.