Chinaunix首页 | 论坛 | 博客
  • 博客访问: 915002
  • 博文数量: 75
  • 博客积分: 6236
  • 博客等级: 准将
  • 技术积分: 726
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-03 14:43
文章分类

全部博文(75)

文章存档

2019年(1)

2018年(6)

2017年(4)

2015年(1)

2014年(9)

2013年(1)

2012年(3)

2011年(9)

2010年(3)

2009年(2)

2008年(4)

2007年(24)

2006年(8)

我的朋友

分类: 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”);
 
(Hempel世界:http://hempel.cublog.cn)
阅读(1559) | 评论(0) | 转发(0) |
0

上一篇:常用缩写语及术语

下一篇:J2ME及其移植

给主人留下些什么吧!~~