1 const
const是定义一个常量
2 volatile
代表定义一个变量,这个变量值可能在CPU指令之外被改变
volatile int a;//定义了一个volatile类型的int变量
通过volatile定义的变量,编译器不会自作聪明的去优化这个变量相关的代码
int a = 10;
volatile a = a+3; // 不允许编译器去优化这行代码
a = a+2;
a = a+6;
printf("a=%d ",a);
若不加volatile,编译器可能会将其优化为a = a+11。
3 register
register int a;//定义了一个变量,是寄存器变量。把一个变量放入CPU的寄存器可以提升程序的运行效率。
regist是建议型的指令,而不是命令型的指令,如果CPU有空闲寄存器,那么register就生效,如果没有空闲寄存器,那么register无效。