如果把一个变量定义为volatile,相当于告诉编译器该变量可能随时被改变,例如被操作系统或硬件改变。
因为带有volatile的变量可以在任何时刻改变,该变量的物理地址可能被频繁的访问,这就意味着编译器
不能对这些变量实行优化
相反,一个变量未被定义成volatile,则编译器认为该变量不能在应用程序之外改变,因此编译器可以对
这种变量实行优化
volatile一般应用在如下场合
1.访问内存映射的外围设备
2.在不同进程之间共用的全局变量
3.中断服务程序中访问的全局变量
本文详细解释了在编程中使用volatile关键字的意义及其应用场景。volatile用于标记那些可能在任何时候被外部修改的变量,防止编译器对其进行优化。文章列举了volatile常见的三种用途:访问内存映射的外围设备、不同进程间共享的全局变量及中断服务程序中访问的全局变量。
如果把一个变量定义为volatile,相当于告诉编译器该变量可能随时被改变,例如被操作系统或硬件改变。
因为带有volatile的变量可以在任何时刻改变,该变量的物理地址可能被频繁的访问,这就意味着编译器
不能对这些变量实行优化
相反,一个变量未被定义成volatile,则编译器认为该变量不能在应用程序之外改变,因此编译器可以对
这种变量实行优化
volatile一般应用在如下场合
1.访问内存映射的外围设备
2.在不同进程之间共用的全局变量
3.中断服务程序中访问的全局变量
971
315

被折叠的 条评论
为什么被折叠?