在linux环境下的C和Cpp中的Volatile



我在Linux环境下为ARM编写程序。它不是一个低级程序,比如应用程序级别

你能给我解释一下这两者的区别吗?

int iData;

volatile int iData;

是否对硬件有特定的影响?

C中的

volatile是为了不自动缓存变量的值而存在的。它会告诉机器不要缓存这个变量的值。所以它会在每次遇到给定的易失性变量时从主存中获取它的值。使用这种机制是因为在任何时候该值都可以被操作系统或任何中断修改。因此,使用volatile可以帮助我们每次都重新访问值。

阅读维基和本页以获得更多解释

最新更新