Oracle® Solaris Studio 12.4:C 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

2.11.6 dumpmacros

#pragma dumpmacros(value[,value...])

要查看宏在程序中如何工作时,请使用该 pragma。该 pragma 提供了诸如宏定义、取消定义和用法实例的信息,并按宏的处理顺序将输出打印到标准错误 (stderr)。dumpmacros pragma 达到文件结尾或遇到 #pragma end_dumpmacros 之前一直有效。请参见end_dumpmacros。下表列出了 value 的可能值:

含义
defs
打印所有宏定义
undefs
打印所有取消定义的宏
use
打印关于使用的宏的信息
loc
另外打印 defsundefsuse 的位置(路径名和行号)。
conds
打印在条件指令中使用的宏的信息
sys
打印系统头文件中所有宏的定义、取消定义和使用的信息

注 -  子选项 loccondssysdefsundefsuse 选项的限定符。只使用 loccondssys 本身没有任何作用。例如,#pragma dumpmacros(loc,conds,sys) 不起任何作用。

dumpmacros pragma 与命令行选项作用相同,但 pragma 会覆盖命令行选项。请参见-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),则每次使用宏时都打印位置和宏名称。