局部变量指函数内部定义的变量,其只在一个函数内部起作用,即函数外部的其它函数不能引用该变量。局部变量缺省存储类型为auto,属于动态存储类型。在该函数完成一次调用后即释放该变量的值。
全局变量指在程序内所有函数外部定义的变量,它可被程序中的所有函数调用。全局变量的缺省存储类型为static,即静态存储类型,存储于内存中的静态存储区。在该程序开始执行时分配存储区,直到程序结束释放。
extern用法 :
一个全局变量的作用域为从定义之处到程序结束。而如果想在程序一开始就能调用该变量,可以像函数的声明那样,在函数开始处做一“声明”----用extern+变量类型+变量名 的形式声明。
若一个程序包括多个文件,且都要用到一个外部变量,不能分别在两个文件中一一声明,而应该在一个文件中定义,而在其它要调用该变量的文件中用extern进行声明即可。
static用法 :
而如果不想一个文件中的外部变量被其它文件调用,则用static作声明即可。形式为 static+变量类型+变量名。
此外可在局部变量前加static来修饰,使一个局部变量在当该函数被执行一次后,该变量的值并不释放。