直接用一个小demo表示了:A.h声明,A.cpp定义,B.cpp使用
A.h
#include<iostream>
extern int C;
A.cpp
#include<iostream>
#include"A.h"
int C = 100;
B.cpp
#include<iostream>
#include"A.h"
#include"A.cpp"
extern int C;
int main() {
std::cout << "C is :" << C << std::endl;
system("pause");
return 0;
}
ps:其实这个代码有点儿问题,虽然能够完成目标功能。但对于B.cpp来说include一个cpp文件是有问题的,但如果不加cpp就会报错:undefined reference to `C’。原因可能是我是单个文件运行,没有使用工程,所以没涵盖到A.cpp。总之这样一个通过extern多文件共享全局变量的思路就是这样的。