do{...}while(0)妙用

来源:互联网 发布:java 线程 wait 编辑:程序博客网 时间:2024/05/22 08:22

详细可以参考这个帖子:do-while-0


总结两个主要的用法:

1.  在处理资源时,简化错误处理代码

do {  // do something  if (error) {    break;  }  // do something else  if (error) {    break;  }  // success handle} while (0);// error handle

当遇到错误时,会从循环跳出来,然后在error handle处释放资源,假如都没有出错,则执行success handle操作并且返回(另一种做法是使用goto)


2. 在宏定义时,用于定义多条语句,避免遇到写if语句不写{}这种情况(这个绝对是个坏习惯)

#define FOO(x) do { foo(x); bar(x); } while (0)if (condition)    FOO(x);else    ....


0 0
原创粉丝点击