[C++] 函数直接声明定义和先声明后定义的区别

结论是,没有什么区别。

直接声明定义的意思是

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

先声明后定义的意思是:

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

void func(){
    //code;
}

形式可能不完全像这样,但说白了,这样就是先不管这个函数具体做些什么事情,而是先把它的名字、参数写好,具体怎么做,到时再实现。
C/C++语言编译系统是由上往下编译的。所以被调函数要放在主函数前面这一点是肯定的,其次,一些变量的顺序可能影响编译,如下所示。

#include<iostream>
using namespace std;

void func();
int n = 1;
int main(){
        cout<<"n:"<<n<<endl;
}
void func(){
	n += 12;//编译通过
}
#include<iostream>
using namespace std;
void func(){
	n += 12;//编译不通过,没有声明变量n
}
int n = 1;
int main(){
        cout<<"n:"<<n<<endl;
}
posted @ 2018-08-04 10:52  zengzhaocheng  阅读(764)  评论(0编辑  收藏  举报