关于SO的大多数问题都涉及非虚假的返回类型,但我们正在就此开展一场火焰战争,并希望了解社区的想法。
void DoSomething()
{
return; // Is this needed?
}
从this讨论看,具有未定义行为的问题似乎涉及非void返回类型的函数。 void返回类型是否具有相同的未定义行为,还是仅在非void返回函数中?
我担心的是,这最终将成为一种可怕的编码风格,而这种风格并不合理。但是,如果它也是void返回函数的未定义行为,那么我可以看到需要将它添加到编码标准中。如果C vs C ++的答案不同,那也没关系。
§6.6.3退货声明
2没有表达式的return语句只能用于 不返回值的函数,即带函数的函数 返回类型的void,contrsuctor(12.1)或析构函数(12.4)。
§6.6.3/ 2
离开函数的末尾是 相当于没有价值的回报; 这导致未定义的行为 in 价值回归功能。
答案 0 :(得分:17)
没有;这是不需要的。
如果您想提前返回并跳过其余功能,则只需要编写return;
。
答案 1 :(得分:2)
你是对的,在一个没有早期突破的功能中永远不需要return;
。
答案 2 :(得分:-1)
回归是明确的。它表明作者清楚地明白没有回报的价值。
顺便说一下 - 应该只允许一次返回,但这是另一次讨论(所以不要在这里回答!!)。此外,从代码维护的角度来看," 返回; "如果函数从void更改,则提供一个方便的位置来添加值。
留下来!目标不是看谁能用最少的行来编写函数。