在c语言中,关键字static的作用主要分为三类:
1.在函数内部修饰局部变量
2.在函数外部修饰全局变量
3.修饰函数
下面对它们进行逐一解释:
1.在函数内部修饰局部变量
当static
用于修饰函数内部的局部变量时,被修饰的变量变成静态变量,其存储位置将从栈(stack)改为静态存储区(static storage area)
作用1:使变量存储在静态区。所以生命周期和程序相同,即贯穿整个函数执行期间,而非仅在定义它的函数执行期间
作用2:该变量只在定义它的函数内部可见。即有函数作用域,但在函数调用之间其值保持不变
2.在函数外部修饰全局变量
作用1:限制该变量的作用域,使其仅在定义它的文件内部可见
作用2:有助于避免不同文件中的同名全局变量之间的冲突
作用3:提供了对全局变量的封装
3.修饰函数
作用:使该函数的作用域被限制在定义它的文件内部,则该函数不能被其他文件直接调用,实现了对该函数的封装。
好处是在模块化编程中,允许程序员隐藏函数的实现细节,只通过接口(即公共函数)与外部世界交互
另外,在面向对象编程语言中(如Java、 C++等),static关键字还有修饰成员变量,和 修饰成员函数的作用
下面附上我做的思维导图: