Chinaunix首页 | 论坛 | 博客
  • 博客访问: 22989
  • 博文数量: 14
  • 博客积分: 560
  • 博客等级: 中士
  • 技术积分: 150
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-21 20:25
文章分类

全部博文(14)

文章存档

2010年(14)

我的朋友
最近访客

分类: C/C++

2010-10-14 19:20:52

一、例子:
#define A(x) T_##x
#define B(x)
#define C(x) #x

假设:x=1,则有:
A(1) ==〉T_1
B(1) ==〉'1'
C(1) ==〉"1"
 
二、均只能在 参数宏定义 的 替换字符序列 中使用,用于链接、转换宏参数:
1.“##”
用于作为字节序列之间的连接符,将左右的宏参数代表的字节序列连接为一个字节序列;
如:#define HOUBE(name,value1,value1) name##value1##value1 //声明
  HOUBE(hoube,1,2);  ///展开为   hoube12

2.“#”
用法:#宏参数名 。将宏参数代表的字节序列,转换为字符串常量,即添加上""。
如:#define HOUBE(name,value1,value1) name##value1##value1 //声明
  HOUBE(hoube,1,2);  ///展开为   "hoube12"

3.(这个好像不行)“#@”
用法:#@宏参数名。将宏参数代表的字节序列,转换为字符常量,即添加上''。
 
阅读(283) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-10-15 16:26:02

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com