关键字extern
用来引用在其他源文件里申明定义的变量或函数,引用方式如 extern int c;
关键字static
1.修饰全局变量时 ,指该变量是本源文件的私有变量。其他源文件不能访问。
2.修饰局部变量时,能延长生命周期作用,也就是下一次访问该变量时还是上一次的值。
3.封装私有对象数据。指修饰函数时,只有本源文件的函数可以调用该函数,其他源文的函数不能调用该函数。
关键字const
给编译器看,把变量修饰成常量,也就是说在编译阶段该值不能更改。
const 修饰的指针,是在运行阶段不能更改。
const int a; int const a;等价
const int *a; int const *a;等价 const 修饰指向指向的地址的内容 不能变
int *const a; const 修饰指针a,就是说指针指向的地址不能变
关键字volatile
防止编译器优化对内存的读书,而造成数据不一致
每次访问被volatile修饰的变量取值时都要从内存中从新取值,
常用于操作外设硬件设备时,修饰其硬件内存/寄存器
关键字register
寄存器变量,被修饰的变量尽可能希望得到寄存器存储空间,以提高对该变量的 I/O效率,但是一定能得到寄存器,取决于编译器