为了提供对特殊地址的稳定访问。

[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中。

最新文章

  1. (转)为什么需要正则表达式 by 王珢
  2. OpenGL 像素在内存中的排列方式
  3. javascript知识点总结----Function定义
  4. juery与表单中name="nodeName"引起的冲突
  5. ElasticSearch入门系列(三)文档,索引,搜索和聚合
  6. Android资源下载
  7. FZU 2183 字符串处理
  8. ACM题目————吝啬的国度
  9. TypeError: validator.settings[("on" + event.type)].call is not a function
  10. iTween基础之Audio(音量和音调的变化)
  11. 数据聚合 & 分组:新一代系统监控的核心功能
  12. 【linux】安装samba服务
  13. nefu 115 循环节
  14. 【BZOJ1951】【SDOI2010】古代猪文
  15. Jumpserver之安装在CentOS主机步骤
  16. WCF 基础框架
  17. Docker 从入门到放弃(一)安装
  18. html+css常用总结
  19. Cookie、Session 和 Token区别
  20. App爬虫神器mitmproxy和mitmdump的使用

热门文章

  1. WebService部署服务器调试时提示 “测试窗体只能用于来自本地计算机的请求”解决方法
  2. Bootstrap 折叠(collapse) 初见
  3. Go语言【第十四篇】:Go语言基础总结
  4. POJ 3261 Milk Patterns (后缀数组,求可重叠的k次最长重复子串)
  5. [BZOJ2055] 80人环游世世界
  6. 洛谷 P3952 时间复杂度 解题报告
  7. 洛谷 P2747 [USACO5.4]周游加拿大Canada Tour 解题报告
  8. 20165218 学习基础和C语言基础调查
  9. [学习笔记]FFT——快速傅里叶变换
  10. 【博弈论】Nim游戏