为什么我们需要使用`int主要的"而不是"无效的主要`C++?[重复]
-
19-08-2019 - |
题
这个问题已经有一个答案在这里:
- 什么应该主要()返回在C和C++? 17的答案
为什么我们需要使用 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()
这是不是所有的优美。