为什么在c ++中使用volatile
关键字?它的正确使用是什么?
根据定义
volatile关键字是一个类型限定符,用于声明可以通过诸如操作系统,硬件或同时执行的线程之类的东西在程序中修改对象。
并且在示例中,它例如为
volatile bool Isrunning;
Isrunning=true;
并且人们将其用于例如
if(Isrunning)
{
//some code here....
}
并在最后
Isrunning=false;
所以我的问题是它与bool Isrunning;
提前致谢。 露
答案 0 :(得分:2)
唯一有效的用法是,如果你绝对需要确保变量的值永远不会保存在寄存器中,而是立即写出并从内存中读取。禁止重新排序读取和写入。
这主要是内存映射硬件I / O所必需的。
请注意,C和C ++中的volatile不会不强制执行多个线程的原子读/写语义。你的定义在这个问题上是错误的。