【问题标题】:Default Return Type of main() in c/C++ [duplicate]c / C ++中main()的默认返回类型[重复]
【发布时间】:2016-03-06 13:47:45
【问题描述】:

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

【问题讨论】:

标签: c++ c types


【解决方案1】:

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

从历史上看(即在制定 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 中复制了这个设计方面。

【讨论】:

  • Int 是 main() 的默认返回类型
猜你喜欢
  • 1970-01-01
  • 2023-03-14
  • 2011-04-08
  • 1970-01-01
  • 2010-09-27
  • 1970-01-01
  • 2017-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多