Посмотрите, что делает препроцессор - PullRequest
5 голосов
/ 12 ноября 2009

Есть ли способ увидеть, как выглядит ваш код после того, как препроцессор выполнил все замены?

Ответы [ 5 ]

8 голосов
/ 12 ноября 2009

Для gcc просто используйте переключатель -E

gcc -E

-E Останов после стадии предварительной обработки; не запускайте компилятор должным образом. Выход в виде предварительно обработанный исходный код, который отправляется на стандартный вывод.

7 голосов
/ 12 ноября 2009

Просто примечание о системных заголовках (например, <stdio.h>): они испытывают боль при предварительной обработке.

gcc -E -nostdinc file.c или cpp -nostdinc file.c не будут включать расширение системных заголовков.

7 голосов
/ 12 ноября 2009

Это зависит от вашего компилятора. С gcc вы бы использовали:

gcc -E source.c
2 голосов
/ 12 ноября 2009

В качестве альтернативы gcc-E вы можете запустить cpp для вашего файла.

1 голос
/ 26 ноября 2009

Eclipse C ++ IDE (CDT) имеет элемент управления Macro Exploration, который можно использовать для:

  • Получение окончательного макроса расширения
  • Пошаговое описание процесса расширения

Это называется Macro Exploration control.

...