读书人

应用do{ } while(0);有什么好处?

发布时间: 2013-02-24 17:58:56 作者: rapoo

使用do{ } while(0);有什么好处???
_Api()
{
do
{
//do something
}while(0);
}

这样写的有什么好处啊?????
[解决办法]
当你执行一段代码到一半,想跳过剩下的一半的时候,如果你正处于do while循环中,则能用break达到这个目的。如:
do
{
我执行
我执行。。
我再执行。。。
if (有什么条件满足了我)
{
呀,我想跳到另外一段代码了,剩下的不执行了,可是不建议用goto语句,怎么办呢?
break;/*看我的*/
}
我有可能被执行
我有可能被执行。
我有可能被执行。。
}while(false)
咦,这样也可以啊,可怜可怜我吧。

[解决办法]
为了宏展开的时候不会出错。
如过直接放在花括号会出错的,不如


#define DO_SOMETHING {int time = 100 ;make_love(i);}

下面是使用的地方

if(you->strong())DO_SOMETHING;
else ..;

展开后是这样的

if(you->strong())
{int time = 100 ;make_love(i);}
;
else ..;

那么编译就会出错,可以验证使用d0{}while(0)就不会出错
linux内核源码经常见这玩意

读书人网 >C语言

热点推荐