if else
的嵌套结构判断逻辑do{...}while(0)内部定义的代码只执行一次架构
if (one == true) { if (two == true) { if (three == true) { //第三个依赖第二个判断结果,第二个依赖第一个判断结果。 //... } } }
能够使用do{...}while(0)la来简化,既而后面的判断依赖前面的判断结果,那么全部的条件都去判断是否等于false
,等于false
的直接break
跳出do while
循环。这样的代码风格就简化不少了。spa
do { if (one == false) { break; } if (two == false) { break; } if (three == false) { break; } } while (0);
宏定义code
#define swap(a,b) {int t=a;a=b;b=t;}
内核中因为不一样架构的限制,不少时候会用到空宏,。在编译的时候,这些空宏会给出warning,为了不这样的warning,咱们能够使用do{...}while(0)来定义空宏:
#define EMPTYMICRO do{}while(0)
这种状况不太常见,由于有不少编译器,已经支持空宏。three