您的位置:首页 >要闻 >

c语言中volatile(volatile c语言)

导读 大家好,今天小六子来为大家解答以下的问题,关于c语言中volatile,volatile c语言这个很多人还不知道,现在让我们一起来看看吧!1、我就用

大家好,今天小六子来为大家解答以下的问题,关于c语言中volatile,volatile c语言这个很多人还不知道,现在让我们一起来看看吧!

1、我就用上面的例子吧volatile int i = 10;int k = i;这段代码如果没有加上volatile,它的执行过程是 i = 10, 10 ->reg寄存器,k = reg值,就是说,k=i实际上是从寄存器里读出来的。

2、这样快捷高效,当然并不是每次都这样,因为寄存器有限。

3、如果在10->reg寄存器的时候,i存储的内存变化了,也就是别的线程修改了i的值,k=i仍然会按照i=10来执行加上volatile后,执行过程是 i = 10, k = *(int *)(&i); 它会从i的内存地址上去读,当然值会非常准确,但是效率会比从寄存器中读要慢很多。

本文分享完毕,希望对你有所帮助。

免责声明:本文由用户上传,如有侵权请联系删除!