do while(0)的妙用

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)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值