我听说在C中,main()是可重入的,而在C++中则不是。
这是真的吗?重新进入main()函数的场景是什么?
早期的C++实现基于到C的转换,通过在main
的开头添加函数调用来实现全局构造函数。在这样的实现下,再次调用main
会重新运行全局actor,导致严重破坏,因此根本禁止这样做
另一方面,C没有理由禁止调用main
,而且这在传统上总是可能的。
至于什么时候有用,我会说"很少"。我看到的大多数名为main
的程序都是IOCCC条目。