У меня есть три программы, в которых я использую ключевое слово 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();
}