Почему «внешний» класс хранения работает по-разному в функциях?
Следующий фрагмент отлично работает
extern int i;
int i;
int main(){
return 0;
}
Вот что я получил, это то, что я объявлен и затем определен. Так как есть только одно определение, так что это прекрасно.
int main(){
extern int i;
int i;
return 0;
}
Теперь вышеприведенное дает следующую ошибку
new.cpp: In function ‘int main()’:
new.cpp:5:6: error: redeclaration of ‘int i’
int i;
^
new.cpp:4:13: note: previous declaration ‘int i’
extern int i;
В чем здесь проблема? Здесь также есть единственное определение «я».