码迷,mamicode.com
首页 > 其他好文 > 详细

volatile的深入理解--【sky原创】

时间:2014-12-03 18:25:38      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   os   sp   on   数据   div   log   

volatile
所有定义的变量都是在内存上面的, 
例如:
int i = 10;
int j = i;
int k = i;
 
i = 10; 是初始化的变量,存放在数据段,未初始化的变量存放在bss段
也就是i为左值时存放在内存上
j = i 此时 i 为右值,那么i的值在寄存器上,j就从寄存器上面取值
由于编译器的原因可能导致编译过程中寄存器上的值会改变
,那么 k 取到的值就不是我们想要的了
如果加了volatile int k = i ;
那么k每次就从内存上取值,保证了取值的正确性
 
 

新浪博客:http://blog.sina.com.cn/u/2049150530
csdn博客:http://blog.csdn.net/u011749143
博客园:http://www.cnblogs.com/sky-heaven/
新浪微博:张昺华--sky
知乎:http://www.zhihu.com/people/zhang-bing-hua

volatile的深入理解--【sky原创】

标签:style   blog   http   os   sp   on   数据   div   log   

原文地址:http://www.cnblogs.com/sky-heaven/p/4140490.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!