您的位置:首页 > 其它

宏定义中#与##

2014-09-13 16:46 162 查看
原创博文:http://biancheng.dnbcw.info/c/237096.html

一、例子:

#define A(x) T_##x

#define B(x) #@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.(这个好像不行)“#@”

用法:#@宏参数名。将宏参数代表的字节序列,转换为字符常量,即添加上''。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: