一、宏替换
1.宏展开的顺序:
先由外层向内层检查,直至最内层后依次向外层展开。例外:遇到“#”开头的宏就不再往内检查,从该层开始往外展开。
2.重新扫描和替换
在替换列表中的所有参数替换过之后,预处理器将对结果token序列重新扫描以便对其中的宏再次替换。当正在替换的宏在其替换列表中发现自身时,就不再对其进行替换;在任何正在嵌套替换的宏的替换过程中遇到正被替换的宏就对其不再进行替换(防止递归)。
二、一些用法
1、”#”与“##”
##操作符的作用是在替代表中将其前后的参数连接成为一个预处理符号(连字符),不能出现于宏替代表的开端和末尾。
#操作符的作用是在替代表中将其后的参数直接替换。