声明和定义的区别:
一:定义包含了声明,但是声明不包含定义,如
int a = 0; //定义并声明了变量 a
extern int a; /*只是声明了有一个变量 a 存在,具体 a 在哪定义的,
需要编译器编译的时候去找。*/
/*extern意思就是说这个变量的定义在外边呢,在别处呢*/
二:函数也是类似,定义的时候同时声明。但如果只是声明,编译器只知道有这么个函数,具体函数怎么定义的要编译器去找。
void fun1(); //函数声明
void fun1(){ //函数定义
cout<<"fun1"<<endl;
}