extern int var;
Я понимаю, что когда мы используем ключевое слово extern
с переменной, как показано ниже, память для этой переменной не выделяется. (Это просто декларация)относительно использования слова extern
extern int i = 0;
И я знаю, что если мы объявляем extern
переменные, а также обеспечить инициализатор вместе с этой декларацией, то выделяется память для этого переменного.
Также ниже программа печати 0
#include <stdio.h>
int i; // Can I treat this as declaration/definition?
int main()
{
printf("%d ", i);
return 0;
}
Я чувствую, здесь переменная i
в настоящее время присваивается значение 0
.
Если (int i;
, как показано выше) является определением, почему ниже код не дает множественного определения ERROR?
#include <stdio.h>
int i;
int i;
int i;
int main()
{
printf("%d ", i);
return 0;
}