C++ #define后面再加#号或##号的作用

#define后面再加#号的作用:

#define后面如果再加一个 # 号,
那么这个符号的作用是文本参数“字符串化”,
即出现在宏定义字符文本中的#
把跟在后面的参数转换成一个C++字符串常量。
#define POUT1(x) printf(#x);
#define POUT2(x) printf(x);
POUT1(Hello World!);	//语法正确
POUT1("Hello World!");	//语法也正确
POUT2(Hello World!);	//语法错误
POUT2("Hello World!");	//语法正确

#define后面再加##号的作用:

#define后面如果再加# # 号,
那么这个##的作用是将两个字符文本连接成一个字符文本,
如果其中一个字符文本是宏定义的参数,
连接会在参数替换后发生。
#define SET1(arg) A##arg=arg;
#define SET2(arg) Aarg=arg;
SET1(1);	//宏替换将SET1(1)替换为A1=1;
SET2(1);	//宏替换将SET1(1)替换为Aarg=1
全部评论

相关推荐

offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
面试摇了我吧:啊哈哈面试提前五个小时发,点击不能参加就是放弃
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务