前一段时间在应用extern变量时报错,今天花点时间来理清一下
extern 的功能很多,我想今天先理清一个问题,那就是extern
extern 可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其它模块中寻找其他定义。另外extern 也可以用来进行链接指定。
extern定义变量
1.使用extern 声明全局变量或函数时,一定要注意所有声明的变量或函数必须在且仅在一个源文件中实现定义。如:extern int a;//只是一个变量的声明,其并不是在定义变量a,并未为a分配内存空间。变量a在所有模块中作为一种全局变量只能被定义一次,否则会出现链接错误。
2.extern对变量的定义和声明
变量:extern int a;//声明一个全局变量a
总结:
对于变量而言,如果你想在本源文件中使用另外一个源文件的变量,就需要在使用前用extern声明该变量,或者在头文件中用extern 声明该变量;