do while(false)
最开始入职的时候,看见那个公司的服务器代码很奇怪,很多Handler里写do while(false),因为条件是false,所以只会执行一次,看起来毫无意义。我每次看到这个就给他删了。
后来写的代码多了些之后,发现这么写的一些优点了。
支持提前退出(类似单次循环)
问题:在函数中需要多次检查条件并提前返回。
解决:用 break 代替 return,保证函数出口单一。
int init_system() {
int ret = 0;
do {
ret = init_subA();
if (ret != 0) break;
ret = init_subB();
if (ret != 0) break;
// ...
} while (false);
return ret;
}