分类: C/C++
2006-12-11 14:09:50
宏“#”可以将任何参数转为字符串;而宏“##”可以作为连接手段。
例如,如果有宏定义和代码如下:
#define paste(front, back) front ## back
#define name2str(name) printf(“%s”, #name)
bool bFlag = false;
fun1(paste(name, test));
name2str(bFlag);
……
那么,该代码预编译的结果 ( cl /P main.c 或者 gcc -E main.c,其输出结果只进行预编译)
bool bFlag = false;
fun1(nametest);
printf(“%s”, “bFlag”);