Когда я скомпилирую код ниже
#include<stdio.h>
int main()
{
int a;
int a = 10;
printf("a is %d \n",a);
return 0;
}
Я получаю сообщение об ошибке:
test3.c: In function ‘main’:
test3.c:6:5: error: redeclaration of ‘a’ with no linkage
test3.c:5:5: note: previous declaration of ‘a’ was here
Но если я делаю переменную global, тогда она отлично работает.
#include<stdio.h>
int a;
int a = 10;
int main()
{
printf("a is %d \n",a);
return 0;
}
Почему объявляется одна и та же глобальная переменная дважды не ошибкой, но для локальной переменной это ошибка?