mr.hs 发表于 2016-1-3 19:55:49

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

在hal里看见了do-while(0);的写法不知道有什么特殊意义

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里面的吗










yxz1212_bao 发表于 2016-1-4 11:33:37

这是为了定义多条表达式,以前在一本c语言的书里看到过,貌似是为了防止一些特殊的调用

党国特派员 发表于 2016-1-4 13:45:09

这个说起来话长了,百度一下吧。

风子 发表于 2016-1-4 14:30:26

一般用在宏定义中,避免出现一些奇怪bug,,

moyanming2013 发表于 2016-1-4 18:33:28

mr.hs 发表于 2016-1-4 11:02


《C安全编码标准》P20:




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)编译后没有任何开销。

dsjsjf 发表于 2016-1-4 18:37:33

楼上正解
页: [1] 2
查看完整版本: hal问题,do-while(0);的写法