Извините, ребята, я знаю, что мой английский плохой, но я сделал примеры, чтобы мой вопрос был более понятным.
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"
Мой вопрос. Почему, когда я удаляю ключевое слово extern перед void funcfoo(), все работает нормально, но когда я удаляю ключевое слово extern перед int var foo, я получаю сообщение об ошибке?