linux内核和其他一些开源的代码中,经常会遇到这样的代码:
do{
...
}while(0)
这样的代码一看就不是一个循环,do…while表面上在这里一点意义都没有,那么为什么要这么用呢?
实际上,do{…}while(0)的作用远大于美化你的代码。查了些资料,总结起来这样写主要有以下几点好处:
1、辅助定义复杂的宏,避免引用的时候出错:
2、避免使用goto对程序流进行统一的控制:
3、避免空宏引起的warning
4、定义一个单独的函数块来实现复杂的操作:
[参考资料]
[1]《do{…}while(0)的意义和用法》(http://www.spongeliu.com/415.html)