extern有三种用法,
1. 一个是声明或定义全局变量。
(使用一个已经定义的全局变量,使用extern) //file_1.cpp int counter; //定义 //file_2.cpp extern int counter; //声明,使用file_1.cpp中的counter ++counter; //
在全局作用域中定义的const变量如果想在其他文件中使用,定义是就需要加上extern
//file_1.cpp extern const int count = 0; //定义counter //file_2.cpp extern const int count; //使用file_1.cpp中的count for(int index = 0; index != count; index++) ...
2.一个是声明或定义函数
3.最后一个是extern “C”。
1. extern加上未初始化的变量是声明全局变量,还需要在.c或.cpp中定义一次。
2. 用extern来声明函数是为了使用其他.c或.cpp中的函数,可以作为include的替代。
3. extern "c"是在C++中编译C格式的函数,所以其他的C程序也可以使用该函数;如果不加extern “c”的话,C++将函数名编译过程中加上了参数类型,会导致c代码无法找到函数。