static:修饰全局变量,函数 改变作用域
修饰 局部变量 生命周期随进程
volatile:
作用:修饰一个变量,保持变量的内存可见性
修饰变量后,cpu每次访问变量数据,都需要从内存中去获取,防止编译器过度优化
函数的可重入与不可重入
函数的重入:一个函数在多个执行流程中,重复进入一个函数进行执行
可重入函数:一个函数重入之后,不会出现数据二义问题或逻辑混乱
不可重入函数:一旦一个函数重入之后,就有可能造成数据二义问题或逻辑混乱
基准:在一个函数中是否对一个全局数据进行了不受保护的非原子操作
也就是说如果是局部变量,各自调用有各自的函数栈帧,相互独立不影响,可重入,还有如果函数中操作为原子操作,操作执行过程中不会被打断,多个函数调用也不会受影响,也为可重入函数