这是主题代码:
外部文件.cpp
int i = 10;
主文件.cpp
#include <iostream>
using namespace std;
extern int i;
int main(int param)
{
cout << i << '\n';
int i = 0;
cout << i << '\n';
cout << ::i << '\n';
}
编译此程序时(使用 Visual Studio 2008),它工作正常,输出将是:
10
0
10
这对我来说并不奇怪,这是范围的问题。
但是让我感到困惑的是:文件如何从另一个文件中mainfile.cpp
获取值(在我们的例子中)?仅仅是因为它们位于同一个目录中吗?或相同的解决方案?i
.cpp
externfile.cpp
并且以更好的方式:在编译项目时如何“合并”源文件(如果我应该指定,使用 VS2008)?它们按什么“顺序”排列?它们的范围如何?