do{...}while(0)的应用
来源:互联网 发布:ubuntu svn 库建立 编辑:程序博客网 时间:2024/05/22 00:49
do{…}while(0)的应用
do{…}while(0)有助于提高代码的健壮性
(1)在定义复杂的宏时,利用do{…}while(0)可以避免宏展开后引用出错
例:
#define SAFE_DELETE(p) do{delete p; p=NULL;}while(0);
在上述宏定义中,如果不用do{…}while(0),将宏定义成如下形式:
#define SAFE_DELETE(p) delete p; p=NULL;
当该宏展开的时候就会出现错误。
(2)利用do{…}while(0)可以消除程序代码中的goto语句
例:
if(AllocateResource(...)==FALSE) goto FAILED;if(AllocateMemory(...)==FALSE) goto FALIED;...FAILED: ...
上述代码在分配资源或内存时可能由于系统资源或内存不足而导致失败,此时使用goto语句可以对资源或内存分配失败的情况进行统一的处理,但是在程序设计中一般不建议使用goto语句,因此使用do{…}while(0)重新构建上述代码如下:
do{if(AllocateResource(...)==FALSE) break;if(AllocateMemory(...)==FALSE) break;}while(0);//handle errors...
0 0
- do{...}while(0)的应用
- do{}while(0)的意义
- do/while(0)的妙用
- do/while(0)的妙用
- do...while(0)的用法
- do/while(0)的妙用
- do...while(0)的妙用
- do/while(0)的妙用
- do/while(0)的妙用
- do{} while(0)的使用
- do...while(0) 的妙用
- do {} while(0)的妙用
- do...while(0)的妙用
- do...while(0)的妙用
- do{} while(0)的用处
- do{}while(0)的意义
- do...while(0)的妙用
- do...while(0)的妙用
- 使用spring的@Async异步执行方法
- 面试题12:打印1到最大的n位数
- 每天三道冲刺工作--假设你有一个用1001个整数组成的数组
- linux虚拟机中安装mongodb
- wpf delay to do sth
- do{...}while(0)的应用
- 设置<input type="text">的默认值
- 每个程序员都应该知道的福利
- ios::sync_with_stdio(false);
- Android UI 之一步步教你自定义控件(自定义属性、合理设计onMeasure、合理设计onDraw等)
- springboot log4j配置
- 设计模式(行为型)之访问者模式(Visitor Pattern)
- 后台运行bat定时器程序示例分享
- String、StringBuffer与StringBuilder之间区别