在 C++ 中,extern
是一个关键字,用来声明一个变量或函数的定义在别的地方。当你在一个编译单元中使用 extern
修饰一个变量时,它将在编译这个编译单元时忽略这个变量的定义,但是会确保这个变量在链接时能被找到。这意味着,在编译单元中使用 extern
修饰的变量或函数并不会在这个编译单元中生成相应的代码,它只是在编译时提供了一个引用。
举个例子,如果在文件 A.cpp
中有这样一个变量的声明:
extern int x;
当你编译 A.cpp
时,编译器会忽略 x
的定义,但是会在链接时寻找 x
的定义。如果在另一个文件中有这样一个定义:
int x= 10;
那么编译器会在链接时把这个定义与 A.cpp
中的引用关联起来。
在 C++ 中,extern
也可以用来声明一个函数,作用与声明变量类似。
总之,在编译单元中使用 extern
修饰变量或函数会使编译器忽略这个变量或函数的定义,但会在链接时寻找它的定义并进行关联。