外部关键字和未解析的外部符号

2 c++ symbols extern

我在绘画中绘制了一个小图表来解释我的问题:

但是<img>在发布后我使用标签时似乎没有出现?

图形:

http://i44.tinypic.com/103gcbk.jpg

Pau*_*ham 7

问题是db声明的范围.代码:

extern Database db;
Run Code Online (Sandbox Code Playgroud)

真的意思是"db在全球某个地方宣布,而不是在这里".然后代码不会继续并且实际上全局声明它,但是在main()中本地声明,这在main()之外是不可见的.代码应如下所示,以解决您的链接问题:

在file1.c

Database db;
int main ()
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

file2.c中

extern Database db;
void some_function ()
{
  ...
}
Run Code Online (Sandbox Code Playgroud)