С Здесь :
Глобальная переменная в C / C ++ - это переменная, доступ к которой можно получить из любого модуля в вашей программе.
int myGlobalVariable;
Это выделяет хранилище для данных и сообщает компилятору, что вы хотите получить доступ к этому хранилищу с именем «myGlobalVariable».
Но что вы будете делать, если хотите получить доступ к этой переменной из другого модуля в программе? Вы не можете использовать тот же оператор, что и выше, потому что тогда у вас будет 2 переменные с именем «myGlobalVariable», и это недопустимо. Таким образом, решение состоит в том, чтобы позволить другим модулям ОБЪЯВЛЯТЬ переменную без ее ОПРЕДЕЛЕНИЯ:
extern int myGlobalVariable;
Это говорит компилятору "есть переменная, определенная в другом модуле myGlobalVariable, типа integer. Я хочу, чтобы вы принимали мои попытки доступа к нему, но не выделяйте для него память, потому что другой модуль уже сделал это".