在C++中,关键字extern可以用于声明变量或者函数是在别处定义的。简单来说,关键字extern用来告诉编译器一个名称的实际位置详细信息,以便在其他文件中使用该变量或函数。
如果在多个源文件中使用同一全局变量或函数,则需要使用extern关键字来进行声明。
例如,在main.cpp文件中定义了一个全局变量g_var,并在另外一个文件func.cpp中也希望访问这个全局变量,则需要在func.cpp中使用extern来声明该全局变量的存在,如下所示:
// main.cpp
#include <iostream>
int g_var = 0; //定义全局变量
int main() {
std::cout << "g_var in main is: " << g_var << std::endl; //输出全局变量
return 0;
}
// func.cpp
extern int g_var; //使用extern关键字声明全局变量
void func() {
g_var++; //修改全局变量的值
}此时,程序可以在main.cpp和func.cpp两个文件中共享相同的全局变量g_var。
以下是使用extern关键字的几点注意事项:
extern表示它部分或全部地可能已经定义。综上所述,关键字extern用于告诉编译器一个名称的实际位置详细信息,以便在其他文件中使用该变量或函数,常用于多文件的项目中或库的开发中。