static
在C 语言中,static的作用有三条:1.隐藏,对于static修饰的函数和全局变量 2.保持持久性-对于static修饰的局部变量 3.默认初始化是0-存放在静态区。
- 隐藏功能 首先我们需要明白的一点是,所有未加static前缀的全局变量和函数都具有全局可见性,在其他源文件中也可以直接访问他们。当加上了static,该变量就会对其他源文件隐藏,m其他程序无法直接访问他们。
- 保持变量内容持久 存储在静态存储区的变量会在程序刚开始运行时就完成初始化,C语言中只有静态变量和全局变量会在程序运行前完成初始化。
- 默认初始化为0 static的第三个作用是默认初始化为0。其实全局变量也具备这一属性,因为全局变量也存储在静态数据区。在静态数据区,内存中所有的字节默认值都是0x00,某些时候这一特点可以减少程序员的工作量。
\
作者:用户1747872752010\
链接:juejin.cn/post/696688…
来源:稀土掘金\
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
· 对于局部变量,用static声明,表示变量和全局变量一样,分配在静态存储区,这个变量在整个程序执行期间不释放。因此在调用时一定要注意static变量的值。
static即可以定义变量又可以定义函数,既可以在函数体内,有可以在函数体外(在函数体内定义等价于在函数体外定义),可以在多个不同函数中定义相同变量名的static变量,互不干扰
(尽量避免用途不单一问题)