main()函数是否可重入?

时间:2013-06-27 02:59:49

标签: c++ c main reentrancy

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

这是真的吗?重新进入main()函数的场景是什么?

1 个答案:

答案 0 :(得分:16)

早期的C ++实现基于对C的转换,通过向main的开头添加函数调用来实现全局构造函数。在这样的实现下,再次调用main将重新运行全局ctors,从而造成严重破坏,因此禁止这样做。

另一方面,C没有理由禁止呼叫main,而且传统上一直都是这样。

至于何时有用,我会说“很少”。我见过的大多数名为main的程序都是IOCCC条目。