为什么在C++中不允许递归的main()调用?

gab*_*lin 8 c++ program-entry-point

可能重复:
对main()函数的限制
在C++中递归到main()是否合法?

我在C++ Primer中读到了main不允许递归调用的问题,并且在SO的一些相关问题中确实证实它是非法的.

但为什么这是非法的?只要你避免堆栈溢出,调用main内部的问题是什么?

小智 1

嗯,标准规定:

3.6.1.3 “main 函数不得在程序中使用。”

5.2.2.9“允许递归调用,除了名为 main 的函数”

我想这是因为 main() 是一个用作程序入口点的特殊函数。我想说的是保持它的特殊性,不要把它降低到正常功能的水平,因为它不是。

  • 引用标准并不能回答问题。提问者想知道为什么标准这么说。 (5认同)