为什么函数不能追逐主
Why can't a function go after Main
为什么我不能在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(){}
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 为什么我的for循环不能正确获取argv
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 为什么我不能在 FOR LOOP 中使用 i/10,C++?
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 为什么模板类中的对象不能返回值
- 为什么我不能在一个类的不同行中声明和定义成员变量?
- 为什么我不能在 C++ 中的特定函数重载中调用同一函数的任何其他重载?
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- 数组长度,为什么从命令行获取时不能使用它?
- Windows/Cygwin - 不能使用 pybind11 - 犯错误
- 为什么我不能使用 EGL 创建无头 OpenGl 上下文?
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 为什么我不能将一个对象push_back到属于另一个类的对象向量中?
- 为什么我不能将 rand() 与数组的大小一起使用?
- 为什么虚函数不能是静态的和全局的?
- 为什么我不能在 while 循环中创建线程?
- 为什么这个音频包络不能通过开关的情况?
- 为什么函数不能追逐主