变量的声明仅仅告诉编译器有这个变量,但没有给它分配内存单元。
但是定义就不同,他是要给变量赋值的。静态变量,外部变量声明相当于定义,系统隐式的给它们初始化。
另外还有一点,数组的声明于定义。C99规定数组的声明可以不指定其程度。
如下代码
extern char s[];
即声明了一个字符数组变量。其长度可以在其定义部分指定。
其外部变量的定义只能一次。而且其初始化只能在其定义部分。
变量的声明仅仅告诉编译器有这个变量,但没有给它分配内存单元。
但是定义就不同,他是要给变量赋值的。静态变量,外部变量声明相当于定义,系统隐式的给它们初始化。
另外还有一点,数组的声明于定义。C99规定数组的声明可以不指定其程度。
如下代码
extern char s[];
即声明了一个字符数组变量。其长度可以在其定义部分指定。
其外部变量的定义只能一次。而且其初始化只能在其定义部分。