hal问题,do-while(0);的写法
在hal里看见了do-while(0);的写法不知道有什么特殊意义昨天我才刚看完.解决了展开错误的问题,百度下吧 是在#define里面的吗 moyanming2013 发表于 2016-1-4 10:19
是在#define里面的吗
是
这是为了定义多条表达式,以前在一本c语言的书里看到过,貌似是为了防止一些特殊的调用 这个说起来话长了,百度一下吧。 一般用在宏定义中,避免出现一些奇怪bug,, mr.hs 发表于 2016-1-4 11:02
是
《C安全编码标准》P20:
moyanming2013 发表于 2016-1-4 18:33
《C安全编码标准》P20:
其实,在其它地方总是使用这个do-while都是最好的选择。
注意:
1.宏中最后while(0)没有分号,这个分号是在调用时给出的:SWAP(X,Y);
2.do{}while(0)编译后没有任何开销。 楼上正解
页:
[1]
2