c ++中的函数位置是否重要?

时间:2014-04-19 06:37:58

标签: c++

#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 ++中是否重要?

2 个答案:

答案 0 :(得分:4)

该函数在使用之前需要声明。除此之外,它并不重要。所以你可以拥有这个:

void cappy(); // declaration

int main()
{
  cappy();
}

void cappy() // definition
{

}

答案 1 :(得分:0)

之所以发生这种情况,是因为在c ++中,编译器只读取文件一次并且“不够聪明”,知道这是一个被调用的未来函数。因此,您可以更早地声明该函数,或者创建一个头文件来声明您将使用的所有函数。