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