C语言中static的作用

(1)在函数体内,局部的static变量。生存周期为程序的整个生命周期;作用域却在定义了的函数体内。一个被声明为静态的变量在这个函数被调用过程中维持其值不变。因为它分配在静态存储区域,函数调用结束以后并不释放单元,但是在其他的作用域无法访问。当再次调用这个函数时,这个局部变量还存活,而且用在它的访问空间,因此访问的是上次调用后的值。

(2)在文件模块内但在函数体外,一个声明为静态的全局变量可以被模块内的所有函数访问,但不能被模块外其他函数访问,它是一个本地的全局变量,限制静态全局变量的作用域。

(3)在文件模块内,一个被定义为静态的函数只能被这个模块内的其他函数调用。也就是说,这个函数被限制在本文件模块内使用,函数默认情况下是全局函数,可以被任意其他文件模块调用。

原文地址:https://www.cnblogs.com/hai5111/p/6227503.html