static声明外部变量
static的作用域限定为被编译源文件的剩余部分,不会和同一程序中的其他文件中的相同的名字相冲突。
static声明函数
除了对该函数声明所在的文件可见外,其他文件都无法访问。
static声明内部变量
该变量只能在特定函数中使用,但一直占据存储空间。变量的值不会因函数的结束而变化,static声明的变量可以起到外部变量的一部分作用。
测试代码如下,返回值为16。
# include <stdio.h>
int add(int a)
{
static int i = 7;
i = a + i;
return i;
}
int main(void)
{
add(3);
add(2);
printf("%d", add(4));
return 0;
}