胆小鬼连幸福都会害怕,碰到棉花都会受伤,有时还被幸福所伤。
– 太宰治 《人间失格》
说明
**
static
,英文单词的意思是“
静态的
**”。
该关键字用来修饰变量和函数,作用是约束变量和函数的作用范围。
该关键字修饰函数和变量的效果是不同的,下面逐一说明。
修饰变量(分为全局变量和局部变量)
- 修饰全局变量 作用是约束其作用范围为被定义的文件,比如你定义其所在的
.c
文件。其实更准确的说是,其作用范围是自定义处开始到文件结尾。 - 修饰局部变量 因为局部变量自身就自带约束其作用范围只能在其定义的代码块(函数等)的作用,使用 static 修饰后,会将该变量的值存在内存的静态区域,也就是说这个变量和全局变量拥有一样的生命周期,也就是有记忆性的,下次进入函数也不会被重新初始化,会保留上次操作更新的值。
修饰函数
static
修饰函数只有一个作用,就是约束其范围,和全部变量一样,将其约束在定义所在的文件,如果别的文件想调用该函数,就会报错。
这样做的好处,就是将函数的作用域限定,不让别的函数使用,避免暴露太多借口给外部,增加安全性和减少耦合性,也利于代码维护。
版权归原作者 机器灵魂注入师 所有, 如有侵权,请联系我们删除。