static:
当用于函数定义或者代码块之外的变量声明时,static关键字用于修改标识符的链接属性,从external改为internal。
当用于代码块内部的变量声明时,static关键字用于修改变量的存储类型,从自动变量修改为静态变量。
extern:
用来声明变量,使得函数可以访问在其他源文件定义的外部变量(该变量在不同于该函数所在的源文件定义,且为全局变量,亦即其定义的位置在所有的代码块之外,其作用域为文件作用域)。