void函数末尾的return语句为空是否有原因
Is there a reason for an empty return statement at the end of void function?
我只是在看别人的代码,他们在void函数的末尾有一个空的return语句:
void someFunction (int* someArg, int someArg2, int someArg3) {
// some operations/function calls/recursion
return;
}
它应该在那里有什么特殊的原因吗?
据我所知,它没有理由需要出现在函数的最后。可能函数最初返回了一个值,有人将其更改为void
,然后用return;
替换了return value;
。或者,一个对C++不太熟悉的人认为的每个函数都必须有一个返回,并会盲目地相信这一点,直到痛苦的结局。
现在,函数中间的返回肯定是相关的,因为它会在此时停止函数的执行。
就我个人而言,我认为保持事情的明确性很好。因此,我更愿意在void
函数中使用return
。是否使用它取决于您,但它有助于提高可读性。
在下面的ISO/IEC 14882:2003[编程语言-C++]中。
6.6.3返回语句
- 函数通过return语句返回给调用方
相关文章:
- 是否可以使用if constexpr删除控制流语句
- 此增量后语句是否会导致未定义的行为?
- 如果中的多个语句是否与多个 if 相同?
- 任意大小的 constexpr 数组是否可以用作 switch 语句中的案例?
- 这些语句是否等效(静态变量、常量变量和泛型)
- 尝试使用 indexOf 创建一个 if 语句来检查字符串是否包含字符.有一点麻烦
- 我的 if 语句打印在我的 while 循环中的每个 if 语句上,无论它是否为假
- 是否可以对任何语句字符串使用预准备语句?
- 是否可以在 "if" 语句中声明变量?
- 是否可以在C++中使用三元运算符在 if 语句中选择比较运算符?
- (C++)for循环中的空初始语句是否保存所有编译器中变量的上一次初始化
- 复制构造函数和复制赋值运算符是否应具有相同的语句?
- 如果语句表达式调用函数,则需要测试是否为 true
- 在任何案例之前,在 switch 语句中的使用声明是否合法?
- 是否可以编写C++不使用任何条件语句交换输入的函数?
- 在返回语句中构造对象时,std::move() 是否有助于或阻止 RVO?
- "If Else"语句缩进在C++中是否重要?
- gcc/g 是否会生成if(false)语句的主体
- 是否可以删除此条件语句
- 是否修改其声明语句中的变量定义良好