static + 局部变量:作用域不变,生命周期从代码块延长到整个文件。
static + 全局变量:生命周期不变,将作用域从这个文件扩展到整个程序(所有相关文件)。
static + 函数 :限制其作用域,其他文件不可再引用该文件里面的静态函数。
volatile:
1、去除缓存,让CPU直接和内存交互,即保证变量的内存可见性。
2、禁止指令重排序,即禁止编译器对代码的顺序进行优化。
static + 局部变量:作用域不变,生命周期从代码块延长到整个文件。
static + 全局变量:生命周期不变,将作用域从这个文件扩展到整个程序(所有相关文件)。
static + 函数 :限制其作用域,其他文件不可再引用该文件里面的静态函数。
volatile:
1、去除缓存,让CPU直接和内存交互,即保证变量的内存可见性。
2、禁止指令重排序,即禁止编译器对代码的顺序进行优化。