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

hal问题,do-while(0);的写法

[复制链接]
mr.hs 提问时间:2016-1-3 19:55 /
在hal里看见了do-while(0);的写法  不知道有什么特殊意义
收藏 评论11 发布时间:2016-1-3 19:55

举报

11个回答
mark0668 回答时间:2016-1-3 23:55:26
昨天我才刚看完.解决了展开错误的问题,百度下吧
moyanming2013 回答时间:2016-1-4 10:19:58
是在#define里面的吗
mr.hs 回答时间:2016-1-4 11:02:51
moyanming2013 发表于 2016-1-4 10:19
是在#define里面的吗










bao124 回答时间:2016-1-4 11:33:37
这是为了定义多条表达式,以前在一本c语言的书里看到过,貌似是为了防止一些特殊的调用
党国特派员 回答时间:2016-1-4 13:45:09
这个说起来话长了,百度一下吧。 1.png 2.png 3.png 4.png 5.png
风子 回答时间:2016-1-4 14:30:26
一般用在宏定义中,避免出现一些奇怪bug,,
moyanming2013 回答时间:2016-1-4 18:33:28

《C安全编码标准》P20:
111.jpg
222.jpg
333.jpg

moyanming2013 回答时间:2016-1-4 18:36:18
moyanming2013 发表于 2016-1-4 18:33
《C安全编码标准》P20:

其实,在其它地方总是使用这个do-while都是最好的选择。
注意:
1.宏中最后while(0)没有分号,这个分号是在调用时给出的:SWAP(X,Y);
2.do{}while(0)编译后没有任何开销。
埃斯提爱慕 回答时间:2016-1-4 18:37:33
提示: 作者被禁止或删除 内容自动屏蔽
安臣 回答时间:2016-1-4 19:17:04
防止宏定义 展开错误  简单暴力的理解方法
JackieLaura 回答时间:2016-1-19 13:09:52
学习了。。。。
stmcu.org.png

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版