我用的是Vs2015 我在主程序cpp文件中如果使用extern 关键词引用另外一个文件中定义的一个变量, vs报错。但是如果在另一个文件中使用extern引用主程序cpp中定义的一个变量却是可以的。代码如下:
// file1.cpp
#include isotream
int a=0; // 定义变量
...
// file2.cpp
#include iostream
extern int a; // 引用file1.cpp中的变量
int main()
{
std::cout<<a<<std::endl; // 报错unresolved external symbol "int a"
// (?a@@3HA)
}
这种情况编译器不会报错:
// file1.cpp
#include iostream
extern int a;
//file2.cpp
#include iostream
int a=0;
int main()
{
}