C语言中static的作用

826 阅读1分钟

相信不少新手和我一样,在一开始看别人写的项目程序时,会发现各种各样的static,比如 static function,static struct, static int什么的。在网上找了一些文档看了之后,我总结了static的用法,以及大佬们为什么要这么写。

在C 语言中,static的作用有三条:1.隐藏,对于static修饰的函数和全局变量 2.保持持久性-对于static修饰的局部变量 3.默认初始化是0-存放在静态区。

  • 隐藏功能 首先我们需要明白的一点是,所有未加static前缀的全局变量和函数都具有全局可见性,在其他源文件中也可以直接访问他们。当加上了static,该变量就会对其他源文件隐藏,m其他程序无法直接访问他们。

  • 保持变量内容持久 存储在静态存储区的变量会在程序刚开始运行时就完成初始化,C语言中只有静态变量和全局变量会在程序运行前完成初始化。

  • 默认初始化为0 static的第三个作用是默认初始化为0。其实全局变量也具备这一属性,因为全局变量也存储在静态数据区。在静态数据区,内存中所有的字节默认值都是0x00,某些时候这一特点可以减少程序员的工作量。