【问题标题】:Confusion about void main() in C [duplicate]关于C中的void main()的困惑[重复]
【发布时间】:2017-07-10 01:02:41
【问题描述】:

int main() 中,return 的值应指示程序如何退出。一般情况下,我们用0返回值表示正常终止,1表示异常终止。

那么,我很想知道,如果void main()函数没有返回任何返回值,那么操作系统如何知道程序在C中正常终止与否?

【问题讨论】:

  • void 不在main 的允许返回类型列表中。所以不要...
  • 例如使用exit(1)
  • 除非您的实现明确void main()作为合法签名记录,否则行为是未定义的 - 任何结果都是可能的(包括运行时错误) , 并且允许任何结果。这取决于程序是如何被调用的,以及操作系统希望在特定位置看到什么。

标签: c main void


【解决方案1】:

void main() 是 C 标准不允许的。 main 应该返回 int 或一些实现定义的数据类型。

【讨论】:

  • 它没有被弃用;它从来都不是一个标准的签名。 main 总是打算返回 int
  • @JohnBode;是的。但它在 K&R 中,我可能会从那里回忆起来。
  • 是的,不幸的是,有太多引用,甚至是有信誉的引用,使用了void main()。自第一个 ISO 标准发布 27 年以来,我们仍在与这场战斗战斗。
猜你喜欢
  • 2017-09-07
  • 2020-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
  • 2017-11-08
  • 2021-12-16
  • 1970-01-01
相关资源
最近更新 更多