欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

do while(0)的妙用

程序员文章站 2024-03-23 13:50:58
...

do while(0)的妙用

do while(0);就如同一个花括号,具有独立的作用域,花括号所表示的符合语句是一个整体,do while(); 语句同样是一个整体,同样可以在if 等条件语句后直接使用。但是后所不同的是,do while(); 作为循环语句还可以使用break 跳出循环,程序执行流也就随之来到了do while(0);的下一条语句。下面就来介绍 do while(0);的三条妙用。

妙用1: do while(0); 可以用来代替goto语句,在需要使用goto的地方直接break。

妙用2: do while(0); 可以使用在复杂的宏函数中,如下代码就不太完备:

#define FUNCTION() {func(); func();}

当我们在调用这个宏函数时,就会在大括号的末尾多出一个分号。

{func(); func();};

虽然可以将分号作为一条空语句来理解,但是遇到更加复杂的宏定义时就会无济于事,所以我们在这里需要用到do while(0);

#define FUNCTION() do{func(); func();} while(0)

这样,我们最后添加的分号就成了do while语句的结束标致,而不是一个空语句了。 

妙用3:避免由宏引起的警告。

定义空宏的时候有些编译器会给出警告,这是可以使用do while(0)。