在下面的程序中,存储的值为return 0
,它实际上代表什么意思?int main()的返回值存储在哪里?
#include <iostream.h>
int main()
{
cout<<"Hello World";
return 0;
}
在下面的程序中,存储的值为return 0
,它实际上代表什么意思?int main()的返回值存储在哪里?
#include <iostream.h>
int main()
{
cout<<"Hello World";
return 0;
}
的main()
返回值是通常的过程(例如,如果它是从命令行调用)的返回值。其确切的存储位置和传输机制返回到调用shell(或父进程)是由定位的平台定义的。
0
(EXIT_SUCCESS
)的返回通常意味着程序无错完成。非零值反过来表示错误 - 您的程序将定义每个值的确切含义。
不需要有“呼叫外壳”。实际上,典型操作系统上的大多数进程可能永远不会由“shell”创建。 –
@KerrekSB。正确,这是针对某些情况并作为例子。 – Niall
使用main
的返回值作为过程的退出状态。
让wikipedia描述什么退出状态表示:
退出状态或返回在计算机编程过程的代码是从一个子进程(或被叫方)通过少数的父进程(或调用者)完成执行特定过程或委托任务时。
因此,您可能会说返回值存储在父进程的内存中。
中的值的标准的宏EXIT_SUCCESS
(由报头<cstdlib>
定义)表示该过程是成功的,而EXIT_FAILURE
值表示失败。
在POSIX系统(以及我用过的其他系统)上,0表示成功,而非0表示失败。
这不是真的由语言定义。最常见的是,它存储在x86架构的EAX
寄存器中。控制流程返回到调用main()
的过程,它可以随心所欲地执行任何操作。
我看到的最常见含义是正常执行(成功)为零,一个用于泛型错误,但每个值都可能意味着程序特有的某些内容。我从来没有建立过一个程序,通过main从int中返回任何有意义的东西,但是假设你创建了一个添加两个数字的程序,那么return的含义就是两个数字的总和,把main看作是一个函数,你的程序从哪个开始。
取决于操作系统。 – 101010
返回值通知宿主环境您的程序的成功状态。可以返回的唯一两个值是'EXIT_SUCCESS'或'EXIT_FAILURE';前者与返回'0'具有相同的效果。不同的平台可以支持更多种状态值(例如,Posix允许8位值状态)。 –