在C++语言中,关键字static有三个明显的作用:
1、在函数体,局部的static变量。生存期为程序的整个生命周期,(它存活多长时间);作用域却在函数体内(它在什么地方能被访问(空间))。 一个被声明为静态的变量在这一函数被调用过程中维持其值不变。因为它分配在静态存储区,函数调用结束后并不释放单元,但是在其它的作用域的无法访问。当再次调用这个函数时,这个局部的静态变量还存活,而且用在它的访问空间,因此访问到的是上次调用后的值。也就是说,一个被声明为静态的变量,在这个函数被调用的过程中维持其值保持不变!
2、 在文件模块内(但在函数体外),一个被声明为静态的全局变量可以被模块内所有函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。限制静态全局变量的作用域。
3、 在文件模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。函数默认情况下是全局函数,可以被任意其它文件模块调用。