c++ - 单步返回声明或多步返回声明

标签 c++ coding-style

<分区>

示例 1:

int length()  
{  
        return strlen(random_string);  
}

示例 2:

int length()  
{  
        int str_length = 0;  
        str_length = strlen(random_string);  
        return str_length;  
}  

问题:
我遇到过很多函数,其中一行代码就可以满足该函数的要求,但我记得一些关于避免这种捷径的事情。

在某些情况下,一个比另一个更合适,还是我应该总是选择更简单的代码。

最佳答案

我永远不会去你的第二个例子,因为初始化然后赋值只是无缘无故地占用空间。

可能做的是:

int length()  
{  
    const int str_length = strlen(arbitrary_string);  
    return str_length;  
}

这有两个原因:

  1. 您允许您的编译器执行命名返回值优化;和
  2. 您的返回值现在可以通过名称 self 记录。

但是,这对我来说更像是一个默认规则。

在这个具体的实际案例中:

  1. 您的返回类型只有极少的 int,因此命名返回值优化无论如何都是不允许的,即使允许也基本上毫无意义;和
  2. 该函数已经很简单并且名称恰当。

所以我将使用第一个示例:

int length()  
{  
    return strlen(arbitrary_string);
}

关于c++ - 单步返回声明或多步返回声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14714684/

相关文章:

c++ - 访问特定地址时是否可以强制访问冲突?

jquery - jscrollpane 设置箭头样式

C 函数头文件位置 : . h 或 .c?

javascript - 在 JavaScript 中定义属性和命名约定

c++ - C++ 中依赖注入(inject)的接口(interface)与模板

c++ - 忙于轮询 std::atomic - msvc 优化了循环 - 为什么以及如何防止?

c++ - EnumDesktopWindows (C++) 大约需要 30 分钟才能在 Windows 10 上找到所需的打开窗口

c# - 是否可以格式化工具提示文本(粗体、下划线...等)?

c# - 防止不必要的字段访问的样式指南

c++ - 为什么我不应该使用 vector<vector<vector<int>>>?