繁体   English   中英

需要知道良好的做法,我应该遵循以下代码

[英]Need to know good practice should i follow on below code

我的代码为:

 int good_practice(void)
    {
      if (somethings == TRUE)
       return true;  //i am asked to remove it coz it will reach anyhow at end and do same but i feels it is good practice and why should i wait for end?
      else
       return false
      }
     }
     return true; 
    }

我被要求删除第一个返回值,因为它最终将到达函数的结尾并返回true。这好吗?

我觉得为什么我需要等待cpu在函数结束时返回并尽早返回。如果我决定以某种条件返回,为什么我应该从结尾返回,为什么本身不为什么要等待结尾?

而且如果我在等待结束,我会增加时间复杂度(我知道这不会有任何区别),但是指令的增加也不会增加。

请帮助我摆脱这种困惑?

这被称为“早期回报”,我认为没有明确的共识。

优点:

  • 如果您提早返回,则不能错误地执行其他一些代码。
  • 如果您正在阅读此特定的执行分支,则提早返回将使流程更明确。
  • 还可以通过提早返回来降低缩进级别。

缺点:

  • 当您查看整个功能时,更容易错过早日回报。

以前有一些关于提早回报的类似问题,例如请参见此处

要求您删除第一个return true因为您可以像这样简单地检查,而没有额外的冗余return true

int good_practice(void) {
    if(!somethings) { 
        return false;
    }
    return true;
}

无论如何,所讨论的代码几乎是多余的

您可以用更好的版本替换它,如下所示:

int good_practice(void)
{
    return somethings;
}

关于提前归还:

通常最好在末尾有一个返回,因为在更早返回时获得的性能与通过返回一个返回的可读性相差甚远。

(尽管那只是我自己的经验)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM