主函数(main() function)可重入吗?

11

我听说在C语言中,main()函数是可重入的,而在C++语言中则不是。

这是真的吗?何时会出现重新进入main()函数的情况?


7
我认为你并不是指“可重入性”。然而,在C语言中,允许调用main函数,但在C++中则不允许。 - David Brown
1个回答

16
早期的C++实现是基于将代码翻译成C语言实现的,通过在main的开头添加函数调用来实现全局构造函数。在这种实现方式下,再次调用main会重新运行全局构造函数,导致混乱,因此禁止这样做。
另一方面,C语言没有理由禁止调用main,并且通常是可以做到的。
至于何时有用,我会说 "很少"。我见过的大多数调用main的程序都是 IOCCC 的条目。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接