для gcc, вы можете использовать один из следующих:
-dCHARS CHARS - это последовательность из одного или нескольких из следующих символов, и перед ней не должно быть пробела.Другие символы интерпретируются самим компилятором или резервируются для будущих версий GCC, и поэтому игнорируются.Если вы указываете символы, поведение которых конфликтует, результат не определен.
M'
Instead of the normal output, generate a list of
# define 'директивы для всех макросов, определенных во время выполнения препроцессора, включая предопределенные макросы.Это дает вам возможность узнать, что предопределено в вашей версии препроцессора.Предполагая, что у вас нет файла foo.h, команда touch foo.h;cpp -dM foo.h
покажет все предопределенные макросы.
Если вы используете -dM без опции -E, -dM интерпретируется как синоним для -fdump-rtl-mach,Смотрите Параметры отладки.
D'
Like
M 'за исключением двух моментов: он не включает предопределенные макросы и выводит оба типа #define' directives and the result of preprocessing. Both kinds of output go to the standard output file.
N' Как `D ', но выдает только имена макросов, а не их расширения.
I'
Output
# include директивы в дополнение к результату предварительной обработки.
U'
Like
D 'за исключением того, что выводятся только макросы, которые расширены или чья определенность проверена в директивах препроцессора;вывод задерживается до использования или проверки макроса;и директивы #undef также выводятся для протестированных макросов, но в то время не определены.