power568 发表于 2016-4-22 11:09:49

C中符号#和##的作用



符号#和##的作用
1. 仅用于预处理宏扩展,只能在宏定义中使用;
2. #用于将参数转换为字符串;
3 ##用于将两个宏参数连接在一起;
4. 转换顺序:在展开当前宏参数时,若形参中无#和##时,展开宏参数再展开宏;若有在不进行宏参数展开;

#define CONNECT(a,b)         a##b
#define STR(a)                           #a
#define TEST(a)                         STR(a)

则:
printf("STR(CONNECT(con,2))=%s\n", STR(CONNECT(con,2)));
printf("TEST(CONNECT(con,2))=%s\n", TEST(CONNECT(con,2)));

输出是:
STR(CONNECT(con,2))=CONNECT(con, 2)
TEST(CONNECT(con,2))=con2

yanhaijian 发表于 2016-4-22 13:09:33

##很有用。

watershade 发表于 2016-4-22 21:15:49

本帖最后由 watershade 于 2016-4-22 21:33 编辑

学习了,这个起初是知道的。可是已经很久没用了。
另外最后一条标准不知道,起初我还以为结果是一样的呐。学习了

党国特派员 发表于 2016-4-22 22:01:10

长知识了。。。

湉湉 发表于 2016-4-23 21:09:27

#
##是好东西

df_flying 发表于 2016-4-24 12:10:49

这个不错 学习了~

2602082487 发表于 2016-4-24 14:41:02

学习了:):):):):):):):):)

风丛林 发表于 2016-4-24 20:22:15

    学习了

zcl201207 发表于 2016-4-24 20:31:58

:):):):):):):):)

五哥1 发表于 2016-12-26 00:20:11

学习了,谢谢
页: [1]
查看完整版本: C中符号#和##的作用