STM32 volatile关键字
2024-08-24 07:05:07
为了提供对特殊地址的稳定访问。
[C] 纯文本查看 复制代码
1
2
3
|
int i=10; int j=i; //1 int k=i; //2 |
此时编译器对上面代码进行优化,因为在1、2语句中,i 没有被用作左值(没有被赋值)。这时候编译器认为i 的值没有发生改变,所以在1语句时从内存取出 i 的值赋给 j 之后,这个值没有被丢掉,而是在2语句中继续用这个值赋值给k。编译器不会生成汇编代码重新从内存里取 i ,这样提高了效率
[C] 纯文本查看 复制代码
1
2
3
|
volatile int i=10; int j=i; int k=i; |
volatile 关键字告诉编译器,i 是随时可能发生变化的,每次使用它的时候必须从内存取出 i 的值,因而编译器生成的汇编代码会重新从 i 的地址处读取数据放在k中。
最新文章
- (转)为什么需要正则表达式 by 王珢
- OpenGL 像素在内存中的排列方式
- javascript知识点总结----Function定义
- juery与表单中name=";nodeName";引起的冲突
- ElasticSearch入门系列(三)文档,索引,搜索和聚合
- Android资源下载
- FZU 2183 字符串处理
- ACM题目————吝啬的国度
- TypeError: validator.settings[(";on"; + event.type)].call is not a function
- iTween基础之Audio(音量和音调的变化)
- 数据聚合 &; 分组:新一代系统监控的核心功能
- 【linux】安装samba服务
- nefu 115 循环节
- 【BZOJ1951】【SDOI2010】古代猪文
- Jumpserver之安装在CentOS主机步骤
- WCF 基础框架
- Docker 从入门到放弃(一)安装
- html+css常用总结
- Cookie、Session 和 Token区别
- App爬虫神器mitmproxy和mitmdump的使用
热门文章
- WebService部署服务器调试时提示 “测试窗体只能用于来自本地计算机的请求”解决方法
- Bootstrap 折叠(collapse) 初见
- Go语言【第十四篇】:Go语言基础总结
- POJ 3261 Milk Patterns (后缀数组,求可重叠的k次最长重复子串)
- [BZOJ2055] 80人环游世世界
- 洛谷 P3952 时间复杂度 解题报告
- 洛谷 P2747 [USACO5.4]周游加拿大Canada Tour 解题报告
- 20165218 学习基础和C语言基础调查
- [学习笔记]FFT——快速傅里叶变换
- 【博弈论】Nim游戏