4.2声明与定义
extern int a;
这是一个显示声明。说明了a的存储空间在程序的其它地方分配的。
严格来说。每个外部变量仅仅能定义一次。假设外部变量的多个 定义各指定有一个初始值,比如:
//l1.c
int a=1;
int a=2;
这样会出错。
可是假设变量没有指定初始值的话,一些系统会接受这种程序。
4.3命名冲突与static修饰符
在C语言中用static声明限定外部变量与函数。能够将其后声明的对象的作用域限定为被编译源文件的剩余部分
static修饰符是一个可以降低命名冲突的实用工具。比如:
static int a。
和
int a。
前者的作用域限制在一个源文件里,对于其它源文件是不可见的。
static修饰符不仅适用于变量,也适用于函数。