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

时间:2015-12-02 10:43:17

标签: c++ c types

为什么char / float / double(其他原始数据类型)不是main()的返回类型?

1 个答案:

答案 0 :(得分:1)

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

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

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

main()返回时,程序以退出状态0结束。想要返回非零退出状态的程序必须显式调用exit()。 Plan 9保留了这个模型。有些人认为这个限制性太强,并且更改了此代码以返回main()的返回值:

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

这就是我们最后main()返回int的方式。据我所知,C ++刚刚从C复制了这个设计方面。