do{ ...}while(0)应用技巧
2014-07-23 10:08
344 查看
辅助定义复杂的宏
example: #define A(args) do { a(args); b() } while(0);
如果定义#define A(args) a(args);b();
if(i > 0) A(i)
if(i > 0 )
do { a(2);b();} while(0)
或者
while(1)
a(args);b(); 这不是我们想要的,因为第二个b();不会被执行。
example: #define A(args) do { a(args); b() } while(0);
如果定义#define A(args) a(args);b();
if(i > 0) A(i)
if(i > 0 )
do { a(2);b();} while(0)
或者
while(1)
a(args);b(); 这不是我们想要的,因为第二个b();不会被执行。
代替goto语句,代码流程比较好。int foo(){ somestruct* ptr = malloc(...); do{ dosomething...; if(error) { break; } dosomething...; if(error) { break; //goto free(ptr); } dosomething...; }while(0); free(ptr); return 0; }
避免空宏引起的waring#define B do{ } while(0);
相关文章推荐
- 关于do...while(0)在宏中的应用
- 【编程技巧】do...while(0)的妙用
- do{}while(0)的使用技巧
- java中while与do-while的选择与应用
- c++学习 day2 循环学习(while do while for) 分支学习(if ; if else; if else if; switch的应用 )
- C#--第2周实验--任务四--编写一个控制台应用--分别使用for,while,do-while循环语句计算 n!
- do-while-zero 结构在宏定义中的应用
- 利用do-while的一个技巧
- do-while循环详解应用以及猜数字小游戏制作【走进JAVA-2.3】
- 解决代码逻辑嵌套过多的技巧 do{} while(0);
- 编程技巧:使用 do {} while (false) 来避免缩进
- cocos2d-x系列笔记技巧篇(1)---关于do{}while(0)和CC_BREAK_IF的用法
- do{ ;}while(false)技巧揭密
- Linux/shell命令的实际应用——while;do;循环执行脚本
- do{...}while(0)的应用
- do...while(0) 在宏定义中的应用
- 内核代码宏中 do{...}while(0) 的作用以及宏中#和##的作用及典型应用
- 【c++技巧】do...while(0)在宏定义中的巧妙用法
- 【技术分享】Use MSBuild To Do More(渗透中MSBuild的应用技巧)
- do-while-zero 结构在宏定义中的应用