C++关键字volatile
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。
volatile int i = 10;
volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素(操作系统、硬件、其它线程等)更改。所以使用 volatile 告诉编译器不应对这样的对象进行优化。
volatile 关键字声明的变量,每次访问时都必须从内存中取出值(没有被 volatile 修饰的变量,可能由于编译器的优化,从 CPU 寄存器中取值)
const 可以是 volatile (如只读的状态寄存器)
指针可以是 volatile
参考文献
重磅干货 :五万字长文总结 C/C++ 知识(上)
详解C/C++中volatile关键字_小白的逆袭-CSDN博客_c++ volatile
C++关键字volatile相关推荐
- C++关键字Volatile的作用
2019独角兽企业重金招聘Python工程师标准>>> 和const对应,const表示变量是恒定不变的,而Volatile则相反,表示变量随时都可能被改变,因此每次获取变量都需要重 ...
- C语言:关键字volatile详解!
一.volatile 介绍 参看:volatile详解 参看:C Language Keywords Indicates that a variable can be changed by a bac ...
- C语言再学习 -- 关键字volatile
上周确实事情挺多的,年会.公司聚餐,一到过年就有忙不完的事分心.还好C语言再学习总结的已经差不多了,年前也不展开别的了,接下来这十几天.总结几篇典型的面试题吧. 言归正传,接下来看看关键字 volat ...
- 每日一题(17)—— 关键字volatile的作用和三个不同的应用场合
关键字volatile的作用和三个不同的应用场合 作用:防止编译器优化: (1)并行设备的硬件寄存器(如状态寄存器):// #define S5PV210_GPIO_DATA (*(volatile ...
- 关键字volatile的含意
关键字volatile有什么含意并给出三个不同的例子. 答:一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了.精确地说就是,优化器在用到这个变量 ...
- C语言面试题小练——第10天:宏定义一年的秒数、变量定义练习、关键字volatile有什么含意
文章目录 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) 2. 用变量a给出下面的定义 3. 关键字volatile有什么含意?并给出三个不同的例子. 1. 用 ...
- C语言基础 — 关键字volatile有什么含意? 三个不同的例子。
关键字volatile有什么含意? 并给出三个不同的例子. 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了.精确地说就是,优化器在用到这个变量 ...
- C语言中的关键字“ volatile”的用法(摘)
C语言中的关键字" volatile"的用法(摘) volatile 这个ANSI C 关键字在经典的C 教程中很少提及,高层编程的人也可能永远都 不会用到,但是作为嵌入式开发者来 ...
- C++中关键字volatile和mutable用法
C/C++中的volatile关键字和const对应,用来修饰变量,用于告诉编译器该变量值是不稳定的,可能被更改.使用volatile注意事项: (1). 编译器会对带有volatile关键字的变量禁 ...
最新文章
- python image stiching_Python自然语言处理,词云图生成
- linux 2.6.35 arm map_lowmem,第一次玩arm和linux,9261移植2.6.39无法挂载jiffys2文件系统,谁能指点一下...
- 记一次被DDoS敲诈的历程
- VTK:PolyData之WarpScalar
- 用键盘来操纵鼠标指针(鼠标损坏时的应急措施)
- javascript字典中添加数组_在javascript中合并两个字典数组
- Hibernate框架ORM的实现原理-不是技术的技术
- 科学家对医疗预印本服务器的影响,美国化学学会将启动化学论文预印本服务
- java中lock_Java中的锁
- A Hierarchical Reinforced Sequence Operation Method for Unsupervised Text Style Transfer
- agile java_《Agile Java》阅读笔记
- java-多线程安全问题
- linux 后台进程管理,Linux 后台进程管理利器 Supervisor
- Python报错:IndentationError: unindent does not match any outer indentation level问题的解决办法及原因
- 上海拍牌服务器协议,上海拍牌服务器地址
- 黑盒测试 之 因果图法
- firefox浏览器window.event is undefined问题
- Python图像增强(翻转和旋转)
- 免费电脑纯净绿色好用的软件
- 使用Simu5G实现车联网V2X通信过程(两个简单的示例)