C语言中static关键字的用法主要有以下三种:
1、在函数体内,static变量的作用范围为该函数体,该变量的内存只能被分配一次,下次调用时维持上次的值(即具有记忆功能)。
2、在模块内的static全局变量可以被模块内的所有函数访问,但是不能被模块外的函数访问(注:即使在模块外的函数中加extern也不行)。
3、在模块内的static函数只可以被模块内其他函数调用,此函数的作用域被限制在声明它的模块之中。
综上:在全局变量前加上static则限制了其作用域(存储区均在全局区);在局部变量前加static改变了其存储区(由栈上变为全局区)。