被多个文件存取的全局变量可以并且应该在一个头文件中说明,并且必须在一个源文件中定义。变量不应该在头文件中定义,因为一个头文件可能被多个源文件包含,而这将导致变量被多次定义。如果变量的初始化只发生一次,ANSIC标准允许变量有多次外部定义;但是,这样做没有任何好处,因此最好避免这样做,以使程序有更强的可移植性。
注意:变量的说明和定义是两个不同的概念,在2.16中将讲解两者之间的区别。
仅供一个文件使用的“全局”变量应该被说明为static,而且不应该出现在头文件中。