# C/C++ 宏展开顺序

## 参考资料

Macro arguments are completely macro-expanded before they are substituted into a macro body, unless they are stringized or pasted with other tokens. After substitution, the entire macro body, including the substituted arguments, is scanned again for macros to be expanded. The result is that the arguments are scanned twice to expand macro calls in them.

1. 如果宏连接字符串, 参数不展开
2. 如果宏把参数转换为字符串, 参数不占开
3. 不满足1,2两个情况的参数会被完全展开