C++ 为什么可以';函数不能跟在Main后面

C++ 为什么可以';函数不能跟在Main后面,c++,visual-studio-2010,C++,Visual Studio 2010,为什么我不能将函数放在main之后,VisualStudio无法构建程序。这是C++的奇特还是Visual Studio Quikk?< /P> 例如 将产生一个main无法使用myFunction的错误您可以,但必须事先声明: void myFunction(); // declaration int main() { myFunction(); } void myFunction(){} // definition 请注意,函数需要返回类型。如果函数不返回任何内容,则该类型必须为

为什么我不能将函数放在main之后,VisualStudio无法构建程序。这是C++的奇特还是Visual Studio Quikk?< /P> 例如


将产生一个main无法使用myFunction的错误

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

void myFunction(); // declaration

int main()
{
   myFunction();
}

void myFunction(){} // definition
请注意,函数需要返回类型。如果函数不返回任何内容,则该类型必须为
void

,因为

myFunction()
必须在使用前声明。一般来说,这是C++行为。

< P>不能使用一个名称/符号,它是<强> > < >强>尚未声明。这就是全部原因

是这样的:

i = 10;  //i not yet declared

int i;
这也是错误的,完全出于同样的原因。编译器不知道
i
是什么–它并不真正关心它将是什么

正如您所写的(这对您和编译器都有意义):

你必须这样写:

void myFunction(); //declaration!

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

void myFunction(){}  //definition

希望能有所帮助。

函数在使用前需要声明:

void myFunction();

int main() {
  myFunction();
}

void myFunction() {
  ...
}

您必须向前声明一个函数,以便main可以知道存在一些函数

void myFunction();

int main()
{
   myFunction();
}

void myFunction(){}

别忘了放
在调用函数之前指定函数声明。这样编译器就可以知道返回类型和签名。

您必须在调用函数之前声明函数

void myFunction();

int main()
{
    myFunction()
 }

 myFunction(){}

大多数计算机编程语言都有自顶向下的方法,这意味着代码是从顶部编译的。当我们在main函数之后定义一个函数并在main[myFunction()]中使用它时,编译器会想“这是什么,我以前从未见过它”,它会生成一个错误,说myFunction未声明。如果您想以这种方式使用,您应该在定义主函数之前给出该函数的原型。但有些编译器接受没有原型的情况

#include<stdio.h>
void myFunction(); //prototype
int main()
{
   myFunction(); //use 
}

myFunction(){ //definition 
.......;
}
#包括
void myFunction()//原型
int main()
{
myFunction();//使用
}
myFunction(){//定义
.......;
}
声明然后定义

void func();
int main()
{
    func();
}
void func()
{
}

myFunction()
是语法错误,而
myFunction()不是。您必须在调用函数原型之前先声明它。可能是因为您在定义它之前调用的
myFunction
没有开销原型。您还忘记了分号和返回类型<代码>myFunction()和<代码>虚空MyFrAuthor({} < /Cord>)可以从主()?HueYutGuululBuykisik的上边的函数调用主(),在C++中,禁止从代码中调用<代码>主()/<代码>。一个好的编译器应该给你错误(或者至少是警告)<运行时调用code>main()
。确定。非常感谢。我只是想知道,在我知道的任何地方都可以看到梅因的胡说八道,但我想知道。:)如果有一个使用
-指令的
,那么让原型在它之前还是之后进行比较好?
#include<stdio.h>
void myFunction(); //prototype
int main()
{
   myFunction(); //use 
}

myFunction(){ //definition 
.......;
}
void func();
int main()
{
    func();
}
void func()
{
}