do确保{}的内容肯定被执行,while(0)确保内容只执行一次;
1,定义宏,原来我会用宏定义定义一些简单的函数,但是阅读起来不友好,且复杂,可以采用该办法定义。
#define ERRCODE(code) do{char s[256]; strcpy(s,errCode(code));printf(“%s\n”,s);}while(0)
2,控制逻辑,在一些强制跳转的地方常常用到goto,但是goto的做法使得代码不容易读,且有时候在面对函数正常执行到最后时候的处理比较麻烦,可以采用:
int func()
{
int *memo = (int *)calloc(1,sizeof(int));
do{
do something... ...
if(err)
break;
do something... ...
}while(0)
free(memo);
return 0;
}