C语言基础(8)-const,volatile,register关键字

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\n",a);

若不加volatile,编译器可能会将其优化为a = a+11。

3 register

register int a;//定义了一个变量,是寄存器变量。把一个变量放入CPU的寄存器可以提升程序的运行效率。

regist建议型的指令,而不是命令型的指令,如果CPU有空闲寄存器,那么register就生效,如果没有空闲寄存器,那么register无效。

posted @ 2016-12-30 10:16  夜行过客  阅读(458)  评论(0编辑  收藏  举报