我读到C++标准禁止递归main(),但是g ++编译以下代码而没有抱怨:
int main()
{
main();
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以澄清这个吗?
我在C++ Primer中读到了main不允许递归调用的问题,并且在SO的一些相关问题中确实证实它是非法的.
但为什么这是非法的?只要你避免堆栈溢出,调用main内部的问题是什么?
此代码是否遵循C标准(例如C89,C99,C10x)?
void
main(int a,int b, int c, int d,char *msg){
if(d==1){
printf("%s\n",msg);
}else{
main(1,2,3,1,&"Hello Stackoverflow");
}
}
Run Code Online (Sandbox Code Playgroud)
如果没有,为什么?