在编译器中存在很多优化,有时候可能不能将一个变量的变化读取到,加上volatile,每次的值,都要通过实际变量去取得,不会直接读取寄存器的值。因为为了优化,寄存器可能先就读取了变量的值,然后在需要的时候直接到寄存器去读取,这中途可能变量的值已经改变了。
这个关键字主要是用来修饰多线程访问和修改的变量,每次用到被volatile修饰的变量,都要直接从对应的内存中去读取数据,而不去读取随时可能变化的值。
C++中volatile有什么作用
最新推荐文章于 2024-02-22 11:40:01 发布