recursion of main
recursion of main
我读到一些在c++中不允许递归main()的地方,但当我尝试时,它运行时没有任何错误
#include<iostream>
using namespace std;
int i=10;
int main()
{
if(i==1)
{
cout<<i;
return 0;
}
i--;
main();
}
显式调用main
是未定义的行为,任何事情都可能发生(包括看似有效)。
C++03 3.6.1
3) 不得在程序中使用功能主体。[…]
编译器(正如所有未定义的行为一样)不需要提供诊断,运行时也不需要崩溃。
代码无效,需要符合要求的编译器来发布诊断。这样一来,编译器就可以自由地做任何事情,包括生成一个运行的可执行文件,并执行您期望它做的事情
请注意,g++似乎不会发出诊断,但EDG编译器(通过comeau在线)会发出诊断。
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 代码在main()中运行,但在函数中出现错误
- Usages of std::move
- 当我在main中声明了我的2d数组时,为什么我的程序会退出
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 函数是否可以访问传递给main()的参数
- 使用 [] 运算符时"binding reference of type discards qualifiers"
- 在main()之外初始化std::vector会导致性能下降(多线程)
- 如何处理 c++ 中类实现中的"invalid use of non-static data member"?
- 具有变量Number of Arguments的std::函数的矢量
- Capacity of a deque
- Deprecation of _writeBarrier()
- 编译mbed操作系统程序时"multiple definition of `main'"错误
- 在 OpenGL 计划链路状态检查期间"No definition of main in vertex shader"
- recursion of main
- 使用 getline 和层次结构时"invalid use of ‘struct main()"
- GNU GCC 编译器错误"multiple definition of main"
- 简单 qtest 失败,'multiple definition of main'
- segfault at the end of the main()