宏定义中"#"的用法 分类: 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
OutputDebugString(macro(x)); 9
Format( "%d",macro2(x,y)); 11
OutputDebugString(str); 12
Format( "%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 // #与参数之间可以有空格 #define TOCHAR(c) #@c #def