//代码1
//add.c(源文件1)
int g_val = 2022;
//test.c(源文件2)
int main()
{
printf("%d\n", g_val);//打印出了2022
return 0;
}
//代码2
//add.c
static int g_val = 2022;
//test.c
int main()
{
printf("%d\n", g_val);报错,不能打印
return 0;
}
代码1正常,代码2在编译的时候会出现连接性错误。
static修饰的全局变量,使得这个全局变量只能在自己所在的源文件(.c)的内部可以使用,其他源文件不能使用
注:static修饰函数时效果与修饰全局变量一致,不再举例说明