1.辅助定义复杂的宏
#define func(a,b) a=1;b=2
//#define func(a,b) do{a=1;b=2}while(0)
if(true)
func(a,b) //报错 因为func展开后有两行,
//修改:1。if加{} 或者 2.在宏定义添加do...while(0)
2.跳出代码块,不执行后面的语句
do{
if(true){
printf("执行");
break; //或continue
}
printf("不执行");
...
...
...
...
}while(0)
配合break和continue跳出循环,类似于goto