广告
AD
关于   小悟志   栏目   标签   文章   归档   友链

   云上小悟  +  

当前位置 : 首页 » InfoTech » C语言中volatile的用法 正文

C语言中volatile的用法

InfoTech / by: 多肉 / 发布:2017年6月3日 / 3次阅读 / 暂无评论
/ 最后修改时间: 2017-06-03 18:43:19

InfoTech / 2017年6月3日 / 3次阅读 /

拍拍贷
featured image

volatile能够影响编译器编译的结果,指出volatile的变量是有可能随时可能发生变化的(在本程序外发生,比如共享变量),与volatile变量有关的运算,不要进行编译优化,以免出错。

 

例如:

volatile告诉编译器i是随时可能发生变化的,每次使用它的时候必须从i的内存地址中读取,因而编译器生成的可执行码会重新从i的地址读取数据放在k中。而优化做法是:由于编译器发现两次从i读数据的代码之间的代码没有对i进行过操作,它会自动把上次读的数据放在k中,而不是重新从i里面读。这样以来,如果i是一个寄存器变量或者表示一个端口数据就容易出错,所以说volatile可以保证对特殊地址的稳定访问,不会出错。

 

总计一下:

(1)告诉compiler不能做任何优化;

(2)用volatile定义的变量会在程序外被改变,因此程序每次都必须从内存中读取,而不能把他放在cache或寄存器中重复使用。

-- (*^-^*) --

本文链接:http://www.maixj.net/ict/c-volatile-15650
云上小悟 麦新杰(QQ:1093023102)

《C语言中volatile的用法》暂无评论

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

云上小悟独立博客网站文章内容,除非特别注明,全部都是原创(非原创请阅读本站版权声明),如需转载,请保留文章链接!原创文章更具个性,有些文字虽略显随意,但不影响个人思想表达。部分文章是我自己的笔记,为自己记录,总结和收藏,同时也分享给您!这是本博建设的出发点,希望您喜欢并得到您的支持!

©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有  备案号:苏ICP备14045477号-1  economists.cn的备案号:苏ICP备14045477号-3    联系我们

云上小悟,麦新杰的独立博客