2024年3月14日发(作者:)
宏定义中
"#"
的用法
分类: VC/MFC2011-01-09 11:32 49人阅读 评论(0) 收藏 举报
惭愧, 今天测试了才真正明白, 在宏定义中使用"#", 还是因为群里有TX提出, 才测试的
看代码:
view plain
1. #define macro(a) #a
2. #define macro2(a,b) a##b
3. #define macro3(a,b,c) a##b##c
#a, 表示a不再是一个变量, 而变成了字符串"a"
##表示连接, a##b, 表示输入的参数名为ab, a##b##c同理, 代表变量名为: abc
测试例子:
view plain
1. int x = 3;
2. int y = 4;
3. int xy = 10;
4. int xyz=20;
5. CString str;
6.
7.
8. OutputDebugString(macro(x));
9.
10. ("%d",macro2(x,y));
11. OutputDebugString(str);
12.
13. ("%d",macro3(x,y,z));
14. OutputDebugString(str);
输出结果为:
x
10
20
第一个为x, marco(x), x变成了"x"字符串
第二个为10, macro(x,y), 就是变量xy
第三个为20, macro(x,y,z), 就是变量xyz
C语言宏定义中"#","#@"和"##"的用法
一、一般用法
#把宏参数变为一个字符串,#@把宏参数变为一个字符,##把
两个宏参数贴合在一起。
#include
#include
#define STR(s) #s // #与参数之间可以
有空格


发布评论