为什么函数不能在Main之后

GPP*_*PPK 7 c++ visual-studio-2010

为什么我不能在main之后放一个函数,visual studio无法构建程序.这是C++怪癖还是Visual Studio怪癖?

例如.

int main()
{
   myFunction()
}

myFunction(){}
Run Code Online (Sandbox Code Playgroud)

会产生一个主要不能使用myFunction的错误

jua*_*nza 25

你可以,但你必须事先声明:

void myFunction(); // declaration

int main()
{
   myFunction();
}

void myFunction(){} // definition
Run Code Online (Sandbox Code Playgroud)

请注意,函数需要返回类型.如果函数没有返回任何内容,那么该类型必须是void.


Naw*_*waz 8

您不能使用一个名称/符号这是不是还没有宣布.这就是全部原因.

它是这样的:

i = 10;  //i not yet declared

int i;
Run Code Online (Sandbox Code Playgroud)

这也是错误的,完全出于同样的原因.编译器不知道什么i -它并没有真正关心它是什么是.

就像你写这个(这对你和编译器也有意义):

int i;  //declaration (and definition too!)

i = 10;  //use
Run Code Online (Sandbox Code Playgroud)

你要写这个:

void myFunction(); //declaration!

int main()
{
   myFunction() //use
}

void myFunction(){}  //definition
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.

  • @huseyintugrulbuyukisik:在 C++ 中,从*您的*代码调用 `main()` 是**禁止的**。一个好的编译器应该给你错误(或者至少是警告)。`main()` 由运行时调用。 (2认同)