使用CodeBlocks忽略在C++中调用main函数

use*_*661 3 c++ compiler-construction program-entry-point codeblocks

可能重复:
主函数可以在C++中调用自身吗?

我决定使用CodeBlock IDE通过调用main函数进行一个小测试,这应该是一个非法的行为.

EX:

#include <iostream>
using namespace std;

int main()
{
  cout<<"hello"<<endl;
  main();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,在代码块中我能够编译这个混乱.有谁知道为什么?

输出:你好

Naw*_*waz 8

正如您在问题中所说的那样main(),语言规范禁止从您的代码中明确调用.只有运行时才能调用它.

当您使用GCC编译代码(阅读您的注释)时,该-pedantic选项将以错误或警告的形式为您提供适当的诊断.试试这个:

g++ program.cpp -pedantic
Run Code Online (Sandbox Code Playgroud)