原本:
if( !init1()){
destory();
return NULL;
}
if( !init2()){
destory();
return NULL;
}
if( !init3()){
destory();
return NULL;
}
if( !init4()){
destory();
return NULL;
}
return 对象;
修改:
for(int i =0;i<1;i++){
if( !init1()){
break;
}
if( !init2()){
break;
}
if( !init3()){
break;
}
if( !init4()){
break;
}
return 对象;
}
destory();
return NULL;
可以发现,不需要重复写destory和return了
同理:
do while(0) 就能保证只执行一次
do{
if( !init1()){
break;
}
if( !init2()){
break;
}
if( !init3()){
break;
}
if( !init4()){
break;
}
return 对象;
}while(0);
destory();
return NULL;