这个问题已经有一个答案在这里:

为什么我们需要使用 int main 而不 void main C++?

有帮助吗?

解决方案

简短的回答,因为C++标准需要 main() 返回 int.

因为你可能知道,返回值 main() 功能运行时所使用的图书馆作为出口码的过程。这两个Unix和Win32支持这一概念的(小)整数返回的过程之后完成。返回的一个值 main() 提供一种方式的程序来指定这种价值。

其他提示

大多数的操作系统报告的用户,或呼叫的过程中,如果申请是成功的。这是特别有用,在编写脚本,那里的剧本可以有条件地分支(如果-然后)的结果的程序。沿线的东西:

// pseudo-code
screenscrape  http://mydatasource.com > results.txt
if errorlevel == 0 then
   processfile results.txt
else
   echo Screen Scraping Failed!
end if

这一结果的状态是通过返回的价值。

虽然一些编译器允许用于无效主体,为了一致性和简洁性,ANSI标准需要一个原型的主要:

int main(int argc, char *argv[]);

因为在C、论据都清理过的来电,提交人的主要可以忽略的声明或过程的参数argc&argv.然而,如果设置程,呼吁主要期望一个int返回值,而不是没有找到一个,行为可以定义。

简短的回答:

  • 返回值的主要是有用的 为脚本。
  • 设置和清理程序,援引主要需要一致接口的使用。

主要原因改变

无效主(){}

int主(){}

在以后的版本是 通知的错误 发生在程序在执行过程中来 操作系统 在其它运行

return 0;

确定计划成功地执行如果任何数量,而不是0返回,这意味着一些错误的发生是谁 错误代码 是返回的主要的。如果你是上运行 具有代码块IDE 看到在建立记录,如果要返回0它通常显示

Process terminated with status 0

别这显示状态中的代码红色这意味着发生了一个错误

从维基百科:

值返回的主要功能变出口状况的过程中,虽然C标准仅仅归咎于特定的含义以两个价值: EXIT_SUCCESS (传统上为零)和 EXIT_FAILURE.意义的其他可能的返回值是执行定义。

作为在C,因为该过程将得到OS一个退出的代码。

你可以使用

int main (int argc, char ** argv)
{
  return (0);
}

int main (int argc, char ** argv)
{
  exit (0);
}

这是至少在C89请参考.

因为int是returncode一个程序可以返回到系统。

你可以查询这个数值为检查,如果操作已经成功.

这是极为有益时采用命令行的脚本。

当我们执行我们的程序来检查它成功运行或没有。因此,当它返回0这意味着它的真实和成功运行,如果返回1然后,它的不成功运行和这个 int 值告诉OS如果该程序的成功运行或不

也许是因为它有道理的干净出口状况代码 main() 法。在爪哇,我们必须仿效这种使用 System.exit() 这是不是所有的优美。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top