最近利用visual studio 2019研究了一下宏展开的规则,作为宇宙第一IDE,非常好用,下面来总结一下学习成果。
总体概述
在举例分析之前,先对规则进行一个总体的概述。总的来说,宏展开的规则有以下几点:
- #表示生成字符串,将一个参数转换为一个字符串;
- ##表示连接,将两个token连接成一个;
- 宏不能自引用;
- 先展开#,再展开##,再展开宏参数,最后将展开的宏参数代入。
例子
下面通过一些例子来分析上面的规则,方便理解。
#表示生成字符串
注意,上图中,“扩展到:”后面会直接给出宏展开的结果,非常方便。
#后面只能跟宏参数
如果宏定义中,没有在#后跟上宏参数,vs会给出错误信息: