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

查看: 1034|回复: 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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版