c/c++中main()的默认返回类型

Default Return Type of main() in c/C++

本文关键字:默认 返回类型 main c++      更新时间:2023-10-16

为什么char/foat/double(其他基元数据类型)不是main()的返回类型?

因为这就是语言的主要设计方式。

历史上(即在ISO/IEC 9899制定之前),没有void。具有您不关心的返回值的函数在声明时没有返回类型,从而使返回类型隐式为int。当时,实际上main()返回什么并不重要,调用main()的代码看起来是这样的:

setup_stuff();
main(argc, argv);
exit(0);

main()返回时,程序结束,退出状态为0。想要返回非零退出状态的程序必须显式调用exit()。计划9保留了这一模式。有些人认为这太过严格,并将此代码更改为返回main()的返回值:

setup_stuff();
exit(main(argc, argv));

这就是main()返回int的原因。据我所知,C++只是从C中复制了这个设计方面。