当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《为什么我们需要在C++中使用`intmain`而不是`voidmain`?》经验,为你挑选了3个好方法。

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



1> Greg Hewgill..:

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

您可能知道,main()函数的返回值被运行时库用作进程的退出代码.Unix和Win32都支持在进程完成后从进程返回的(小)整数的概念.返回值为main()程序员指定此值提供了一种方法.


"简短"答案实际上是*唯一*答案.允许`void main(){...}`是非常有意义的.您仍然可以使用`exit()`将退出代码返回给环境,或者如果到达`main`的末尾则默认为'0`.不使用`void main()`的原因是语言标准不允许它,只不过它允许`double main(long long foo,time_t bar)`.

2> abelenky..:

如果应用程序成功与否,大多数操作系统会向用户或调用进程报告.这在脚本编写时尤其有用,脚本可以在程序结果上有条件地分支(if-then).有点像:

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

此结果状态通过main的返回值完成.

虽然一些编译器允许void main,但为了一致性和简单性,ANSI标准需要一个main的原型:

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

因为在C中,参数被调用者清理,main的作者可以忽略声明或处理参数argc&argv.但是,如果调用main的setup-routine期望一个int返回值,而不是找到一个,则行为可能是未定义的.

简短回答:

main的返回值对脚本很有用.

调用main的设置和清理例程需要使用一致的接口.



3> 小智..:

改变的主要原因

void main(){}

int main(){}

在以后的版本中,是为了在执行期间将程序中发生的错误通知运行它的操作系统

return 0;

识别程序成功执行,如果有任何数字而不是0返回,这意味着发生了一些错误,谁的错误代码是由main返回的.如果您在codeblock IDE上运行,请参阅构建日志中是否正常显示主返回0

Process terminated with status 0

否则它以红色显示状态代码,表示发生了错误

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有