static表示的含义是静态的意思,如果全局变量加上了static就表示这个变量只能在自己的文件下访问,其他的文件访问不了,就算extern关键字也不能访问。
如果局部变量加上了static就表示这个变量是存储在全局变量区,不会存储在局部变量区,也就是说函数被调用结束之后并不会清空这个变量,这个变量还会一直存在,直到整个程序运行结束。
函数前面加static和全局变量前面加static作用是一样的,见该函数的访问权限限制在一个文件里面,防止其他文件调用
如果是在变量前面加了static对于局部变量,延长了局部变量的存活周期;在全局变量前加,只针对本文件有效,其他文件不能用这个变量。
这样就是静态变量了,在C文件中的全局变量用后,只在文件中可用,其他的文件中可用。
函数里面调用,会将变量放在静态内存区,函数退出后不回收
.c文件里面调用,意思是只允许在当前的.c里面使用它
static可以修饰变量和函数,用来限定他们的生命周期,作用空间。
修饰函数时,此函数只能在此文件中调用。
修饰局部变量(栈上),这个局部变量就不存在栈上了,而是全局静态变量处。不在栈上,那其数据就不会在函数调用时初始化。
修饰全局变量,作用类似修饰函数,限定其作用空间在此文件中。
常用的功能就两种:
(1)加在变量前面,代表静态变量,一般用于函数中。
(2)加在函数前面,代表内联函数,只需要在单个文件内调用,跨文件无法调用!