【问题标题】:Can I omit return from main in C? [duplicate]我可以在 C 中省略 main 的返回吗? [复制]
【发布时间】:2012-11-12 18:36:32
【问题描述】:

在 C++ 中,3.6.1 主函数

(3.6.1/5) main 中的 return 语句具有离开 main 函数的效果(销毁任何具有自动存储持续时间的对象)和 以返回值作为参数调用 exit。 如果控制达到 main结束没有遇到return语句,效果是 执行 return 0;

我可以在 C99 中执行以下操作而不返回 0 吗?

int main() { }

【问题讨论】:

  • 你有 C++ 标准但没有 C 标准?
  • @CarlNorum:他们不是都花钱吗?
  • @NPE:C99 标准可在线免费获得。并且可能重复也回答了这个问题:stackoverflow.com/q/204476/1202636
  • 草稿是免费的。谷歌“C99 PDF”,它是第一个点击。
  • @NPE:发布的标准在两种情况下都需要花钱(至少对于合法副本而言)。无论哪种情况,都可以免费获得与实际标准几乎没有区别的草案。

标签: c main c99


【解决方案1】:

是的,从 C99 开始,如果 main 的返回类型与 int 兼容,则到达 main 末尾的 } 返回 0。

5.1.2.2.3 程序终止

如果main函数的返回类型是与int兼容的类型,则从初始调用main函数返回等效于用main返回的值调用exit函数函数作为其参数;11) 到达终止main 函数的} 返回值0。如果返回类型与int 不兼容,则返回终止状态主机环境未指定。

【讨论】:

    【解决方案2】:

    是的,C99 标准说 (§5.1.2.2.3):

    到达终止main函数的}返回值0。

    【讨论】:

      猜你喜欢
      • 2014-03-21
      • 2015-07-14
      • 1970-01-01
      • 2012-12-05
      • 1970-01-01
      • 2011-07-14
      • 2019-01-11
      • 2018-10-02
      • 1970-01-01
      相关资源
      最近更新 更多