只执行一次的for循环有什么特殊作用么?该如何解决
只执行一次的for循环有什么特殊作用么?
RT,看到代码里有段
不明白什么用
------解决方案--------------------
我想是因为 有好多出口 比如 好多 if() free(sth);return; 这时候都放进for 中,当条件成立就break 出去 并统一释放资源并返回
------解决方案--------------------
如果没记错的话,记得赵老师说过一种方法
RT,看到代码里有段
- C/C++ code
for(k=0;k<1;k++) //自此之后k再也没有出现 { ... }
不明白什么用
------解决方案--------------------
我想是因为 有好多出口 比如 好多 if() free(sth);return; 这时候都放进for 中,当条件成立就break 出去 并统一释放资源并返回
------解决方案--------------------
如果没记错的话,记得赵老师说过一种方法
- C/C++ code
do{ //Do something. }while(0);
------解决方案--------------------
改变程序结构流,比如
do{
//Do something.
}while(0);
也是,具体好处
比如socket 需要初始化环境 WSAStartup ,而退出时又要清理 WSACleanup(void);
假如在程序中间有错误的话,每次退出程序前都要调用WSACleanup(void);而用
do{
//Do something.
}while(0);则不同了
看如下代码
do{
WSAStartup....
if ( 错误发生... )
break;
//Do something.
}while(0);则不同了
//清理工作放在最后
WSACleanup。。。
程序流是不是更简洁了?