BR 技术头条
bl blog.delphij.net / 2023-06-24 09:33 / by @技术头条

C main() 的 exit() 和 return

这里讨论一个犀利而无用的细节问题。事情的缘起是有人在 GitHub 上提了一个 pull request 要求把许多程序的main() 的​终结部分从 exit(X) 改为 return X;,我反对了这一变动。

发表评论

相关分享

bl blog.delphij.net / 2026-05-10 17:39

C++ 中的 main 定义

    新的 C++ 标准中 不允许给 main 指定 linkage-specification 了。

    当然,考虑到原本 main() 也是 C 运行环境在开始运行程序的时候调用的, 而 C 运行环境自然也预期 C linkage,即不按照 C++ 的习惯对符号根据参数增加名字前缀, 因此大部分编译器在遇到 C++ 程序定义全局 main() 的时候也会按照习惯采取 C linkage 方式去翻译。这一规则首先被 GCC 采纳,随后 LLVM 也跟进了。

    然而我今天遇到一个奇葩彻底把我雷到了。

无图