C/C++宏定义中井号(#)的含义

来源:互联网 发布:淘宝卖旧丝袜的暗语 编辑:程序博客网 时间:2024/05/12 15:26
#include <iostream>#define dprint(expr) printf(#expr"=%d\n", expr)#define cat(x, y) x##yint main(){int a = 1, b = 2;dprint(a+b);int ans123 = 9;dprint(cat(ans, 123)); //cat(ans, 123) is ans123system("pause");}

输出结果为:
a+b=3
cat(ans, 123)=9

 

解释(在宏中):

#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。

## 被称为连接符(concatenator),它把参数产开并转化成字符串即用""引起来。里面的空格分割全部改为一个,并且会自动添加转义字符'/'。

原创粉丝点击