static
修饰局部变量
1、改变了局部变量存储位置,普通局部变量存储在栈区,静态局部变量存储在静态区。生命周期变长。
2、静态局部变量,在程序刚开始运行时初始化一次,具有记忆功能。可用于计数,每次调用某个函数一次,静态局部变量+1
项目中使用经验:
在某个回调函数中,使用了static修饰局部变量,使得这个局部变量有了记忆功能,每调用一次回调函数,它的值会+1;
修饰全局变量和函数
1、全局变量和函数本身是具有外部链接属性的,在Hello.c文件中定义的全局变量和函数,在test.c文件中可以通过【链接】来使用;
2、如果全局变量被static修饰,那这个外部链接属性就会被修改成内部链接属性,此时这个全局变量就只能在自己的源文件中使用;
项目中使用经验:
A模块依赖于B模块编译出来的动态库,在B模块中,某个函数是static修饰的,A模块无法使用。