要声明可在不同源文件中访问的变量的单个实例,可以使用关键字在全局范围内将其声明extern。该关键字表示编译器在代码中的某个位置为该变量定义,因此可以在任何地方使用它,并且所有写/读操作都将在一个内存位置进行。
// 文件my_globals.h: #ifndef __MY_GLOBALS_H__ #define __MY_GLOBALS_H__ extern int circle_radius; // 向编译器承诺circle_radius // 将在某处定义 #endif
// 文件foo1.cpp: #include "my_globals.h" int circle_radius = 123; // 定义extern变量
// 文件main.cpp: #include "my_globals.h" #include <iostream> int main() { std::cout << "半径为: " << circle_radius << "\n";' return 0; }
输出:
半径为: 123