为什么函数不能追逐主

Why can't a function go after Main

本文关键字:追逐 不能 函数 为什么      更新时间:2023-10-16

为什么我不能在main后面放一个函数,visualstudio不能构建程序。这是C++的怪癖还是Visual Studio的怪癖?

例如。

int main()
{
   myFunction()
}
myFunction(){}

将产生一个错误,main不能使用myFunction

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

void myFunction(); // declaration
int main()
{
   myFunction();
}
void myFunction(){} // definition

请注意,函数需要返回类型。如果函数不返回任何内容,则该类型必须是void

您不能使用名称/符号,该名称/符号不是,但已声明。这就是全部原因。

它是这样的:

i = 10;  //i not yet declared
int i;

这也是错误的,原因完全相同。编译器不知道i是什么–它真的不在乎会是什么

就像你写这篇文章一样(这对你和编译器都有意义):

int i;  //declaration (and definition too!)
i = 10;  //use

你必须这样写:

void myFunction(); //declaration!
int main()
{
   myFunction() //use
}
void myFunction(){}  //definition

希望能有所帮助。

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

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

因为

myFunction()

在使用它之前必须声明。这通常是c++行为。

函数在使用之前需要声明:

void myFunction();
int main() {
  myFunction();
}
void myFunction() {
  ...
}

您必须转发声明一个函数,这样main才能知道存在一些函数。

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

不要忘记将;放在每个命令之后。

在调用函数之前指定函数声明。这样编译器就会知道返回类型和签名

声明然后定义。

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

您必须先声明函数。

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