一、static:
static是一种申明变量的函数,静态变量。它有以下几种作用:
1、若定义在函数体内,只会在函数体内起作用,而且在调用过程中其值不会变。
2、限制变量的作用域,即在模块内的static全局变量只能在改模块内的其他函数调用。
3、若在定义在子函数内,其在被调用过程中会存储在栈内,而且不会随着子函数的结束而被释放,会在整个函数(模块)结束时才会被释放。
4、被定义为static的变量只会在刚开始调用时被初始化,也是 唯一 一次被初始化。
5、未被初始化的static会被默认 初始化为 0。
二、const:
1、const:常类型,常类型的变量或对象的值是不能被更新的。
int const a = value;
const int a = value;
其二者的a的值是一样的,其值不能被改变。
2、作为外部连接时,其作用是将 变量扩大至全局,其在编译时分配内存,并且可以不进行初始化。
extend const int a = value;
3、在这几年最多的说法是被const定义的变量 意味着“只读”。
三、volatile:
定义为volatile的变量有可能会被改变,编译器就不会去假设这个变量的值。在尤其是程序在优化时,
当要读取到这个值时,系统不会从寄存器中去读取这变量的值,而是从地址中去读取这个变量的值。