当它用于函数定义时,或用于代码块之外的变量声明的时候,static关键字用于修饰符的链接属性,从externl改为internal,但是标识符的存储类型和作用域不受影响。用这种方式声明的函数或者变量只能在它们的源文件中访问。
当它用于代码块内部的变量声明的时候,static 关键字用于修饰变量的存储类型,从自动变量改为静态变量,但是变量的链接属性或者作用域不受影响。用这种方式声明的变量在程序执行之前创建,并在程序执行期间一直存在,而不是每次在代码块开始执行的时候创建,在代码块执行完毕之后销毁。