#include <iostream>
using namespace std;
int my_variable = 12;
void cappy()
{
std::cout<<"value is"<< my_variable<<endl;
}
int main()
{
std::cout<< my_variable<<endl;
cappy();
}
这个c ++代码工作并返回:
12
value is12
但是:
#include <iostream>
using namespace std;
int my_variable = 12;
int main()
{
std::cout<< my_variable<<endl;
cappy();
}
void cappy()
{
std::cout<<"value is"<< my_variable<<endl;
}
此代码返回错误:
cpp: In function ‘int main()’:
cpp:8:7: error: ‘cappy’ was not declared in this scope
为什么会这样?函数的位置在c ++中是否重要?
答案 0 :(得分:4)
该函数在使用之前需要声明。除此之外,它并不重要。所以你可以拥有这个:
void cappy(); // declaration
int main()
{
cappy();
}
void cappy() // definition
{
}
答案 1 :(得分:0)
之所以发生这种情况,是因为在c ++中,编译器只读取文件一次并且“不够聪明”,知道这是一个被调用的未来函数。因此,您可以更早地声明该函数,或者创建一个头文件来声明您将使用的所有函数。