Stack Overflow 上有很多关于使用的问题do { ... } while(0)
在宏中,但这有点不同。我明白为什么do { ... } while(0)
用于将多行代码包装在宏扩展中。但我经常看到另一种形式:({ ... })
.
The ({ })
form 的优点是它是一个表达式并且可以有“返回值”。它也(主观上)读起来比do { } while(0)
。那么为什么它不总是被使用呢?使用有什么好处do { } while(0)
在宏中代替?
Because ({...})
is 海湾合作委员会扩展 https://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Statement-Exprs.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)