对不起,伙计们,我知道我的英语不好,但我举了一些例子,这样我的问题就更清楚了。
a.cpp
#include <iostream>
using namespace std;
void funcfoo(){
cout << "test only" << endl;
}
int varfoo = 10;
b.cpp
#include <iostream>
using namespace std;
extern void funcfoo();
extern int varfoo;
int main(){
funcfoo();
cout << varfoo;
return 0;
}
然后我像这样编译它“cl b.cpp a.cpp”
我的问题是。当我在 void funcfoo() 之前删除“extern 关键字”时它工作正常,但是当我在 int var foo 之前删除 extern 关键字时,我得到了一个错误。