首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2013-02-24 
使用do{ }while(0)有什么好处??? _Api(){do{//do something}while(0)}这样写的有什么好处啊?????[解决办

使用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内核源码经常见这玩意

热点排行