static
链接:static静态变量的理解 - dzqdevin - 博客园 (cnblogs.com)
C语言中static的用法(修饰局部变量,修饰全局变量,修饰函数)_static在c语言中的用法_ww here的博客-CSDN博客
c语言中static关键字用法详解_static在c语言中的用法_guotianqing的博客-CSDN博客
static的三种用法:
(1)修饰局部变量,静态局部变量
(2)修饰全局变量,静态全局变量
(3)修饰函数,静态函数
静态局部变量
(1)静态局部变量在编译时赋初值。即使声明时未赋初值,编译器也会将它初始化为0;编译器一般不会对普通局部变量赋初值,也就是在初始化的时它的值是不确定的。
(2)静态局部变量在函数调用结束后,其占的内存空间不会被释放掉。下次调用时该变量还会保留上次函数调用结束的值,而不是初始化的值。
(3)静态局部变量本质上还是局部变量,所以它的作用域还是在被定义的函数内部。
(4)数据在全局数据区分配内存,所以它存放在RM中的数据段或者BSS段。
静态全局变量
(1)全局变量编译器会自动对其初始化,在全局数据区分配存储空间。
(2)作用域是在被定义的.c文件中,其他文件是不可以调用该全局变量的。不具有外部链接属性。所以其他文件可以定义同名的静态局部变量,两者互不影响。
静态函数
(1)只能在声明它的文件可见,其他文件不可调用。
(2)不同的文件名可以声明相同名字的静态函数,互不影响。