C 语言之static 辨析 C 语言之 static 辨析 概述: 概述:在 C 语言中,static 的字面意思很容易把我们导入歧途,其实它的作用有三条: (1)隐藏功能。 (2)保持变量内容持久 (3)默认初始化为 0 (1)第一条也是最重要的一条: 第一条也是最重要的一条:隐藏。 隐藏。 当我们同时编译多个文件时, 所有未加 static 前缀的全局变量和函数都具有全局可见性。 为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是 a.c,另一个是 main.c。 下面是 a.c 的内容 char a = 'A'; // global variable void msg() { printf("Hello\n"); } Examda 提示: 下面是 main.c 的内容 int main(void) { extern char a; // extern variable must be declared before use printf("%c ", a); (void)msg(); return 0; } 程序的运行结果是: A Hello 你可能会问: 为什么在 a.c 中定义的全局变量 a 和函数 msg 能在 main.c 中使用?前面说 过,所有未加 static 前缀的全局变量和函数都具有全局可见性,其它的源文件也能访问。此 例中,a 是全局变量,msg 是函数,并且都没有加 static 前缀,因此对于另外的源文件 main.c 是可见的。……