do {} while(0)的妙用
来源:互联网 发布:jc是什么意思网络用语 编辑:程序博客网 时间:2024/04/30 14:55
do {} while(0)在linux是一种很常见的用法。
用法1:
在判断语句中使用,避免混淆语句结构。
用do{}while(0)将语句包起来,避免干扰原有语句的结构。
例:
#define foo(a)/
do{
if(a == 0)dosomething();
}while(0);
if(x == 1)
foo(a);
else something();
如果不包起来,编译器将会按
if(x == 1)
if(a==0)dosomething();
else something();
解释,程序流程将会被 改变。
用法2:
避免使用goto语句
例:
int foo(){
//申请资源
int * p = malloc(sizeof(int));
do{
//出错,break;
}while(0);
//出错处理
free(p);
return -1;
}
如果不用do{}while(0)的话,程序将需要在每一个退出分支上编写同样的出错处理函数或采用goto语句跳转到出错处理分支中,程序的可读性下降,结构混乱。
用法3:
#define foo() { int x; x++; x++;}
if(a == 0)foo();
else dosomething();
以上代码存在语法错误,用do{}while(0)可以消除。
总结,do{}while(0)在宏定义中有广泛的应用,使用它可以产生通用性更强的宏定义,提高宏定义的适用性。在程序中使用可以消除goto语句,提供更清晰的代码结构。
- 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)的妙用
- Ruby 教程(四)
- WIN7 出现文件无法删除解决办法
- Ant构建文件解说
- J2SE知识点
- 操作系统学习笔记(11)--makefile的$@
- do {} while(0)的妙用
- 微软的银光技术
- 伤感
- 怎样编译gcc源码
- CTreeCtrl控件学习第一课
- 应用ExcelHelper 数据库内容导出到Excel
- 一个变量的误用。
- 对eclipse失望了
- GridView导出Excel研究