函数或者变量的声明在程序中可以出现多次,但是函数或者变量的定义只能够出现一次,因此,一般把声明放在头文件中,把定义放在cpp文件中。
1、关于变量的声明和定义
在头文件中写:int g_nTmp,编译器会认为这是一个定义,因此在链接的时候会出错 。解决这个问题有两个办法:(1)写成const int g_nTmp=0,这是因为const和inline一样具有“只能定义一次”的例外(2)写成extern int g_nTmp,这纯粹就是一个声明,表示告诉编译器该变量在别的地方已经有定义
2、关于函数的声明和定义
在头文件写这个函数:void fun() {return;},编译器认为这是一个定义,因此链接的时候会出错。解决方法是:将函数写成内联函数,即inline void fun() {return;}