Is a blank return statement at the end of a function whos return type is void necessary?(返回类型为 void 的函数末尾是否需要空白返回语句?)
问题描述
关于 SO 的大多数问题都涉及非 void 返回类型,但我们正在为此展开一场激烈的战争,并想了解社区的想法.
Most of the questions on SO refer to non-void return types, but we are having a flame war at work about this and wanted to find out what the community thought.
void DoSomething()
{
return; // Is this needed?
}
来自 this 讨论,看起来未定义行为的问题涉及非 void 返回类型的函数.void 返回类型是否具有相同的未定义行为,还是仅在非 void 返回函数中?
From this discussion, it looks like the issue of having an undefined behavior deals with functions of non-void return types. Do void return types have this same undefined behavior, or is it only in the non-void returning function?
我担心的是,这最终会成为一种糟糕的编码风格,没有任何理由可以证明这一点.但是,如果它也是 void 返回函数的未定义行为,那么我可以看到需要将其添加到编码标准中.如果 C 与 C++ 的答案不同,那也没关系.
My concern is that this will just end up as a terrible coding style that isn’t justified by anything. However if it’s also an undefined behavior for void return functions, then I can see the need for adding it to the coding standard. If the answer is different for C vs C++ this is ok too.
§ 6.6.3 返回语句
§ 6.6.3 The return statement
2 没有表达式的 return 语句只能用于不返回值的函数,即具有返回 void 类型、构造函数 (12.1) 或析构函数 (12.4).
2 A return statement without an expression can be used only in functions that do not return a value, that is, a function with the return type of void, a contrsuctor(12.1), or a destructor(12.4).
§ 6.6.3/2
从函数的末尾流出的是相当于没有价值的回报;这会导致未定义的行为在一个值返回函数.
Flowing off the end of a function is equivalent to a return with no value; this results in undefined behavior in a value-returning function.
推荐答案
No;这不是必需的.
如果你想提前返回,你只需要写 return;
并跳过函数的其余部分.
You only need to write return;
if you want to return early and skip the rest of the function.
这篇关于返回类型为 void 的函数末尾是否需要空白返回语句?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:返回类型为 void 的函数末尾是否需要空白返回语句?
基础教程推荐
- C利用语言实现数据结构之队列 2022-11-22
- 一文带你了解C++中的字符替换方法 2023-07-20
- C++使用easyX库实现三星环绕效果流程详解 2023-06-26
- 如何C++使用模板特化功能 2023-03-05
- C++中的atoi 函数简介 2023-01-05
- 详解c# Emit技术 2023-03-25
- C语言基础全局变量与局部变量教程详解 2022-12-31
- C语言 structural body结构体详解用法 2022-12-06
- C++详细实现完整图书管理功能 2023-04-04
- C/C++编程中const的使用详解 2023-03-26