资料介绍
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
是可见的。