我有以下两个文件
//###########
//a.cpp
//###########
#include <iostream>
int main()
{
extern int var; //Why is this allowed?
std::cout << var << std::endl;
var = 99; //Core dump happens here
std::cout << var << std::endl;
return 0;
}
和
//###########
//b.cpp
//###########
extern const int var = 41;
在这里,编译和链接没有任何问题。当我运行时,我在尝试将“var”的值设置为 99 时得到核心转储。我想知道为什么允许我在 a.cpp 中声明一个非常量 var。链接器不应该无法链接吗?