为什么char / float / double(其他原始数据类型)不是main()的返回类型?
答案 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复制了这个设计方面。