在C语言中,关键字static有三个明显的作用:
- 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
- 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
- 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。
- 在类中的static成员变量属于整个类拥有,对类的所有对象只有一份拷贝。
- 在类中的static成员变量属于整个类拥有,这个函数不接受this指针,因而只能访问类的static成员变量。如a.static_var,而不能用this.static_var。