修饰变量,变量又分为局部和全局变量,但它们都存在内存的静态区。
修饰函数,函数前加static 使得函数成为静态函数
static 是个修饰符
表示定义了一个静态变量。
这个变量的生存期是永远。
例如:
void fun(void)
{
int i = 0;
static int j = 0;
i++;
j++;
printf("i=%d\r\n");
printf("j=%d\r\n");
}
这段代码里,变量i和j,都是局部变量。仅仅在这个函数里才能访问。
变量i是临时变量,它的生存期从花括号{开始到花括号}完。每次调用fun函数,它都会被初始化。
fun函数结束后,i所占用的内存空间会被重新分配。它所在的空间我们叫做栈区(stack)
而变量j永远占用它的空间。它只会被初始化一次。它所在的空间叫做静态区(static)
静态变量 跟全局变量类似
但是作用域不同