我们必须在函数"return"末尾写什么?在 C++ 中
what for we have to write at the end of the function "return"? in c++
有人可以问我函数末尾的"返回"是什么以及为什么我们必须在主函数末尾写 return 0.e.g
int main()
{
.....
return 0;
}
您不必在C++main
末尾写入return
;返回值 0
是隐式的。(这在 C 中是不同的,在 C 中你必须返回一个值。
这样做是将一个值返回给程序的环境,以便可以知道程序是成功(零(还是遇到一些错误(非零(。其他程序,包括shell脚本/批处理文件可以使用此信息来做出决策,例如,当它们运行的程序中遇到错误时,它们可以提前停止。
所有支持函数调用的 CPU 都有一个类似 RET
的指令,以显式地从被调用函数内部返回调用函数的代码。函数调用后要返回的代码的内存地址已经保存在"众所周知的地方"(例如堆栈(。RET
指令将检索该内存地址并将 CPU 指向正确的位置,以便在原始函数调用之后的代码上恢复执行。
在 c++ 中,某些函数被声明为"返回"特定值(如上面的函数 main(,而其他函数从不返回任何值(声明为返回类型为 void 的值(。如何声明所编写的函数由您选择。如果函数返回类型为 void,则代码中不需要显式 return 语句,除非您过早返回,例如从 if、else 或循环内部返回。例如:
void foo(int x) {
if (x == 0)
return; // premature return to caller
int b = x*2;
// do some more stuff
// and now no need to say return, its done implicitly because we are at function end
}
但是,当您的函数被声明为具有非 void 返回类型(例如 int(时,您应该在函数中有一个显式 return 语句,即使您没有过早返回。
int bar(int y) {
return y*7;
}
因为调用方期待它,并且可能会将返回值分配给如下所示的变量:
int z = bar(4);
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 警告处理为错误这里有什么问题
- 什么时候调用组成单元对象的析构函数
- #定义c-预处理器常量..我做错了什么
- 努力将整数转换为链表。不知道我在这里做错了什么
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 什么时候在C++中返回常量引用是个好主意
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- C++避免重复声明的语法是什么
- c++库的公共头文件中应该包含什么
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 有什么方法可以遍历结构吗
- 当类在C++中定义时,有什么方法可以"register"类吗?
- ifstream什么都没读
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- C++从另一个类访问公共静态向量的正确方法是什么
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- 我应该使用什么来代替void作为变体中的替代类型之一
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用