#pragma dumpmacros (value[,value...]) |
要查看宏在程序中如何工作时,请使用该 pragma。该 pragma 提供了诸如宏定义、取消定义和用法实例的信息,并按宏的处理顺序将输出打印到标准错误 (stderr)。dumpmacros pragma 达到文件结尾或遇到 #pragma end_dumpmacro 之前一直有效。请参见B.2.6 #pragma end_dumpmacros。value 可以是下列参数:
值 |
含义 |
---|---|
defs |
打印所有宏定义 |
undefs |
打印所有取消定义的宏 |
use |
打印关于使用的宏的信息 |
loc |
另外打印 defs、undefs 和 use 的位置(路径名和行号) |
conds |
打印在条件指令中使用的宏的信息 |
sys |
打印系统头文件中所有宏的定义、取消定义和使用的信息 |
子选项 loc、conds 和 sys 是 defs、undefs 和 use 选项的限定符。使用 loc、conds 和 sys 本身并不会生成任何结果。例如,#pragma dumpmacros=loc,conds,sys 不会生成什么结果。
dumpmacros pragma 与命令行选项作用相同,但 pragma 会覆盖命令行选项。请参见A.2.123 -xdumpmacros[= value[,value...]]。
dumpmacros pragma 并不嵌套,因此以下代码行中,处理 #pragma end_dumpmacros 时,将停止打印宏信息:
#pragma dumpmacros (defs, undefs) #pragma dumpmacros (defs, undefs) ... #pragma end_dumpmacros |
dumpmacros pragma 的作用是累积的。以下代码行
#pragma dumpmacros(defs, undefs) #pragma dumpmacros(loc) |
具有和以下行相同的效果
#pragma dumpmacros(defs, undefs, loc) |
如果使用选项 #pragma dumpmacros=use,no%loc,则使用的每个宏的名称仅打印一次。如果使用选项 #pragma dumpmacros=use,loc,则每次使用宏时都打印位置和宏名称。