立秋散分,顺便问个写法有关问题

立秋散分,顺便问个写法问题今天看到LINUX内核代码里有不少这样的写法:C/C++ codedo{....} while(0)//为什

立秋散分,顺便问个写法问题
今天看到LINUX内核代码里有不少这样的写法:

C/C++ code
do{    ....} while(0);//为什么要这么写?这种形式好在哪?


散分,唉,这个秋天就大三了,辞去了第一份工作,回去继续自己鼓捣……

[解决办法]
执行一遍,跳出~~

防止宏配对错误~~~
[解决办法]
举个例子看一下
C/C++ code
#define FREE1(p) {if (p) free (p);}void main(){       int *p=(int*)malloc(10);     int i=1;    if (i>0)        FREE1(p)    else    printf("expression was false.\n") ;}