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;
}
返回顶部