do…while(0)消除goto语句;通常,如果在一个函数中开始要分配一些资源,然后在中途执行过程中如果遇到错误则退出函数,当然,退出前先释放资源
在C++中,有三种类型的循环语句:for, while, 和do…while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do…while相对不受重视。
但是我发现了do…while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。
1. do…while(0)消除goto语句
通常,如果在一个函数中开始要分配一些资源,然后在中途执行过程中如果遇到错误则退出函数,当然,退出前先释放资源,我们的代码可能是这样:
version 1
{
// 分配资源
int *p = new int;
bool bOk(true);
// 执行并进行错误处理
bOk = func1();
if(!bOk)
{来源gao@daima#com搞(%代@#码网
delete p;
p = NULL;
return false;
}
bOk = func2();
if(!bOk)
{
delete p;
p = NULL;
return false;
}
bOk = func3();
if(!bOk)
{
delete p;
p = NULL;
return false;
}
// ……….
// 执行成功,释放资源并返回
delete p;
p = NULL;
return true;
}
以上就是do…while(0)的妙用详细解析的详细内容,更多请关注gaodaima搞代码网其它相关文章!