Ключевое слово extern указывает компилятору, что следующая за ним переменная уже объявлена где-то еще.На самом деле он не выделяет место для переменной.Если вы хотите создать глобальную переменную, которую вы можете использовать, включив заголовочный файл (что, кстати, обычно является плохой идеей), вы можете сделать это следующим образом.
В файле foo.h:
extern int myVar;
в foo.cpp:
int myVar;
myVar теперь находится в foo.cpp, но оператор extern в foo.h разрешает код в других файлах (таких как bar.cpp) получить к нему доступ, включив foo.h.