Это самая запутанная часть для меня из раздела Глобальные переменные и свойства сцепления.Как C++ различает вызов глобальной переменной и объявление глобальной переменной?
extern int g_var1;
Утверждение может быть чем-то вроде этого при определении внешней неконсольной глобальной переменной. Я думаю, что я буду писать точно так же, как использовать эту переменную (через форвардную декларацию) в другом файле. Если оба утверждения одинаковы, то как C++ знает, была ли указана или определена ли переменная в файле?
Непонятно, что вы подразумеваете под «вызовом переменной». –
Это, кажется, ответ на ваш вопрос: http://stackoverflow.com/questions/10422034/when-to-use-extern-in-c – Jordan
Вы не «вызов» переменные, вы звоните * функции * ,Похоже, вы действительно задаетесь вопросом, как компилятор определяет, является ли это определение глобальной или только декларации. – molbdnilo