#与##在宏定义中的使用
时间:2010-10-14 来源:houbangen
一、例子:
#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.(这个好像不行)“#@” 用法:#@宏参数名。将宏参数代表的字节序列,转换为字符常量,即添加上''。
#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.(这个好像不行)“#@” 用法:#@宏参数名。将宏参数代表的字节序列,转换为字符常量,即添加上''。
相关阅读 更多 +