作用一:隐藏
作为变量和函数的前缀
使作用的变量或函数对其他源文件起到隐藏、避免命名冲突的作用。
作用二:完成一次初始化
作为函数内局部变量的前缀
1、与全局变量相同,都位于静态数据区中,不同的是:该变量全局不可见,出了函数,外部看不到。
2、使该变量只进行一次初始化,并且在函数执行完毕后,仍然存储该变量的值。
例如:
#include
int count(){
static int count = 10;
//变量count只被初始化一次,值为10
return count--;
//接下来,每次调用一次count(),count值会自减1,并且保存最后一次的值,即使函数执行完毕,该值仍旧存储在函数内,只不过外部无法访问罢了。
}
int main(void)
{
for(int i=0 ;i < 5; ++i)
printf("%d\n", count());
return 0;
}