Chinaunix首页 | 论坛 | 博客
  • 博客访问: 113716
  • 博文数量: 22
  • 博客积分: 596
  • 博客等级: 中士
  • 技术积分: 165
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-17 15:32
文章分类

全部博文(22)

文章存档

2012年(1)

2011年(20)

2010年(1)

分类: C/C++

2011-06-15 00:47:22

我们在需要对于某些条件进行判断的时候,长长会写成如下形式:

if (a if (c if (e ...

当判断条件非常多的时候,就显得非常的不爽了,括号之间的管理,前后的判断等等,修改起来也非常不方便,这时候我们可以使用do..while(0);
这里的while(0)保证了不会进行下次循环,那么,这和没有写这个用法有啥区别?看看下面的代码就知道了。

do{
if (a >= b) break;
...
if (c >= d) break;
...
if (e >= f) break;
...

}while(0);

可以看到,这段代码和上面那段实现功能是一样的,但是,明显的更加有条理,如果需要更改也非常方便了。

PS:当然,do...while(0)在C语言的宏中也用得比较多,特别是,当把宏伪装成函数的时候,经常这么使用,在glib的代码中就大量用了do...while(0)。

 原文地址
阅读(1350) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~