我有这样的事情:
--includes.h
extern int count;
--main.cpp
#include "includes.h"
int count = 4;
--other.cpp
#include "includes.h"
cout<<count; // will output 4
但是当我这样做时,编译器会出错,并显示以下消息:
error LNK2001: unresolved external symbol "int count" (?count@@3HA)
知道我为什么会这样做吗?
跨不同文件共享变量的最佳方法是什么? 如何在一个文件中定义使用变量,并在另一个文件中修改该变量?
答案 0 :(得分:0)
的main.cpp
#include <iostream>
int y;
int testy();
int _tmain(int argc, _TCHAR* argv[])
{
std::cout << y;
std::cout<<testy();
std::cout << y;
return 0;
}
source.cpp
extern int y;
int testy(){return y++;}
这有助于了解您的问题......
答案 1 :(得分:-1)
您可以尝试输入未命名的命名空间
namespace{
extern int count = -1;
};
CPP:
std::cout << count;
答案 2 :(得分:-2)
你应该在一个标题中定义一个extern int,在一个文件中定义一个int,但是这个文件应该没有任何对标题的引用