【发布时间】:2015-07-27 17:23:35
【问题描述】:
extern int var;
我了解到,当我们将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;)是定义,为什么下面的代码没有给出多个定义错误?
#include <stdio.h>
int i;
int i;
int i;
int main()
{
printf("%d ", i);
return 0;
}
【问题讨论】:
标签: c extern multiple-definition-error