我在header.h中定义了变量 'a'并在test1.cpp,test2.cpp中使用它。当我构建它时,我收到了一个链接错误,例如
致命错误 LNK1169:找到一个或多个多重定义的符号
有什么问题?我想使用全局变量'a'可以在多个cpp中使用。
头文件.h
int a = 0;
主文件
#include "header.h"
#include "test1.h"
#include "test2.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
test1(); // expected output : 0
test1(); // expected output : 1
test2(); // expected output : 2
test2(); // expected output : 3
cout << "in main : " << a << endl; // expected output : 3
return 0;
}
测试1.h
extern int a;
void test1();
测试1.cpp
#include "test1.h"
#include "header.h"
void test1() {
cout << "test1 : " << a << endl;
a++;
}
测试2.h
extern int a;
void test2();
测试2.cpp
#include "test2.h"
#include "header.h"
void test2() {
cout << "test2 : " << a << endl;
a++;
}