do{}while(0); 的几个用途
#include <stdio.h> #define NULLMACRO do{}while(0); #define DOTASK() \ do{ \ Task1(); \ Task2(); \ }while(0); void Task1() { printf("Task1\n"); } void Task2() { printf("Task2\n"); } int main(int argc, char const *argv[]) { int a = 10; //1.作用域限制 do{ int a = 7; printf("%d\n", a); }while(0); printf("%d\n", a); //2.不使用goto语句 do { if(1) { printf("no goto\n"); break; } }while(0); //3.定义复杂的宏 DOTASK() //4.使用空宏 return 0; }

浙公网安备 33010602011771号