У меня есть три программы, в которых я использую ключевое слово extern
. Я не могу понять результат. Ниже приведены три примера:
Пример 1: я ожидал, что приведенный ниже код выдаст ошибку компиляции, связанную с множественным объявлением k
. Но работает нормально?
int k; //works fine
extern int k = 10;
void main()
{
cout<<k<<endl;
getchar();
}
Пример 2: когда я пытаюсь инициализировать "k" в приведенном выше примере, компилятор выдает ошибку. Почему?
int k = 20; //error
extern int k = 10;
void main()
{
cout<<k<<endl;
getchar();
}
Пример 3: В этом примере я изменил порядок определений, упомянутых в примере 1. Когда я компилирую этот код, я получаю ошибки. Почему?
extern int k = 10;
int k; //error
void main()
{
cout<<k<<endl;
getchar();
}
int k;
в области файла означает разные вещи на этих двух языках. - person CB Bailey   schedule 28.07.2011