【发布时间】:2013-06-24 09:43:53
【问题描述】:
我听说在 C 中,main() 是可重入的,而在 C++ 中则不是。
这是真的吗?重新进入main()函数是什么场景?
【问题讨论】:
-
我不认为你的意思是reentrant。确实,您可以在 C 中调用
main,但不允许在 C++ 中调用它。
标签: c++ c main reentrancy
我听说在 C 中,main() 是可重入的,而在 C++ 中则不是。
这是真的吗?重新进入main()函数是什么场景?
【问题讨论】:
main,但不允许在 C++ 中调用它。
标签: c++ c main reentrancy
早期的 C++ 实现基于对 C 的转换,通过在 main 的开头添加函数调用来实现全局构造函数。在这样的实现下,再次调用main 会重新运行全局ctors,造成严重破坏,因此根本禁止这样做。
另一方面,C 没有理由禁止打电话给main,而且传统上总是可以的。
至于什么时候有用,我会说“很少”。我见过的大多数称为main 的程序都是IOCCC 条目。
【讨论】: