你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 1015|回复: 9

C中符号#和##的作用

[复制链接]

40

主题

757

回帖

4

蝴蝶豆

金牌会员

最后登录
2019-12-27
发表于 2016-4-22 11:09:49 | 显示全部楼层 |阅读模式


符号#和##的作用
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

回复

使用道具 举报

10

主题

1651

回帖

0

蝴蝶豆

论坛元老

最后登录
2020-2-15
发表于 2016-4-22 13:09:33 | 显示全部楼层
##很有用。
回复 支持 反对

使用道具 举报

50

主题

1057

回帖

67

蝴蝶豆

论坛元老

最后登录
2020-12-2
发表于 2016-4-22 21:15:49 | 显示全部楼层
本帖最后由 watershade 于 2016-4-22 21:33 编辑

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

使用道具 举报

76

主题

5715

回帖

4

蝴蝶豆

论坛元老

最后登录
2020-10-15
发表于 2016-4-22 22:01:10 | 显示全部楼层
长知识了。。。 null.png null1.png null2.png null3.png null4.png
回复 支持 反对

使用道具 举报

18

主题

216

回帖

4

蝴蝶豆

金牌会员

最后登录
2020-12-1
发表于 2016-4-23 21:09:27 | 显示全部楼层
#
##  是好东西
回复 支持 反对

使用道具 举报

2

主题

185

回帖

0

蝴蝶豆

高级会员

最后登录
2019-4-2
发表于 2016-4-24 12:10:49 | 显示全部楼层
这个不错 学习了~
回复 支持 反对

使用道具 举报

15

主题

293

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-11-17
发表于 2016-4-24 14:41:02 | 显示全部楼层
学习了
回复 支持 反对

使用道具 举报

0

主题

218

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-10-30
发表于 2016-4-24 20:22:15 | 显示全部楼层
    学习了
回复 支持 反对

使用道具 举报

0

主题

1277

回帖

30

蝴蝶豆

金牌会员

最后登录
2020-7-4
发表于 2016-4-24 20:31:58 | 显示全部楼层
回复 支持 反对

使用道具 举报

19

主题

1714

回帖

7

蝴蝶豆

论坛元老

最后登录
2020-10-25
发表于 2016-12-26 00:20:11 | 显示全部楼层
学习了,谢谢
回复 支持 反对

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版