1

我已经使用了很长时间的单返回风格(作为结构化编程风格)。我已经开始阅读 Fowler 的“重构”,并在他写道的地方找到了“删除控制标志”和“用保护子句替换嵌套条件”,应该避免单次返回。

对我来说,使用单次返回有很多好处,只是阅读困难一些。那么使用多重回报的利润是多少?

好处

  1. 单次返回允许轻松地将断点设置为返回语句
  2. 如果有单个返回值,很容易为结果值添加 Assert
  3. 单次返回使代码更具可读性
4

1 回答 1

1

即使有多个返回,也有一个函数退出点。它是结束大括号。只需在其上放置一个断点并设置一个条件来检查 rAX(如果 IA32e)。

int f()
{
    if (condition)
        return 1;
    return 0;
} // Place here. Would break at epilog just before return. 
于 2012-08-23T09:00:36.077 回答