导读 您好,今天小编胡舒来为大家解答以上的问题。volatile food,volatile c语言相信很多小伙伴还不知道,现在让我们一起来看看吧!1、我就用上...

您好,今天小编胡舒来为大家解答以上的问题。volatile food,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的内存地址上去读,当然值会非常准确,但是效率会比从寄存器中读要慢很多。

本文就为大家分享到这里,希望小伙伴们会喜欢。