int main()的返回值存储在哪里?

时间:2016-07-28 08:38:04

标签: c++ c++11

在下面的程序中,return 0的值存储在哪里,它实际上意味着什么?

#include <iostream.h>

int main()
{
  cout<<"Hello World";
  return 0;
}

3 个答案:

答案 0 :(得分:3)

main()的返回值通常是进程的返回值(例如,如果从命令行调用它)。它的确切存储位置和返回到调用shell(或父进程)的传输机制由目标平台定义。

返回0EXIT_SUCCESS)通常意味着程序完成且没有错误。非零值反过来表示错误 - 您的程序将定义每个值的确切含义。

答案 1 :(得分:1)

main的返回值用作流程的退出状态。

wikipedia描述退出状态的含义:

  

计算机编程中进程的退出状态或返回代码是在完成执行特定过程或委派任务时从子进程(或被调用方)传递到父进程(或调用方)的一小部分。

因此,您可能会说返回值存储在父进程的内存中。

标准宏EXIT_SUCCESS中的值(由标题<cstdlib>定义)表示进程成功,而EXIT_FAILURE值表示失败。

在POSIX系统(以及我使用过的所有其他系统)上,0表示成功,非零表示失败。

答案 2 :(得分:0)

这并不是由语言真正定义的。最常见的是,它存储在x86架构中的EAX寄存器中。控制流程返回到调用main()的进程,它可以随意执行任何操作。

我看到的最常见的含义是正常执行(成功)为零,一般为一般错误,但每个值可能意味着程序特定的某些内容。我从来没有构建一个程序,通过来自main的int返回任何有意义的东西,但是说你创建了一个添加两个数字的程序,好吧,返回的意思是两个数字的总和,把main看作只是一个函数,你的程序开始的那个。