程序设计 关键字解释

一、volatile

推荐一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:

  1). 并行设备的硬件寄存器(如:状态寄存器)

  2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)

  3). 多线程应用中被几个任务共享的变量

cpu也是有存储器的,这个存储器就是它的寄存器,虽然数量有限。编译器总是把一些常用的内存地址内容,放到寄存器,这样读取速度更快。如果多线程共享一个变量,而这个变量会不定被哪个线程更改。那么最好声明这个变量为volatile,否则编译器会对该变量做出优化,将内存中的值读到寄存器,这样会造成别的线程改了,但是寄存器还没有改。(从C++理解计算机、windows程序设计)

原文链接: https://www.cnblogs.com/peijihui/archive/2010/11/06/1870673.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    程序设计 关键字解释

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/17046

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月7日 下午5:31
下一篇 2023年2月7日 下午5:32

相关推荐