volatile food(volatile c語言)

摘要: 您好,今天小編胡舒來為大家解答以上的問題。volatile food,volatile c語言相信很多小伙伴還不知道,現在讓我們一起來看看吧!1、我就用上面的例子吧volatile...

您好,今天小編胡舒來為大家解答以上的問題。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的內存地址上去讀,當然值會非常準確,但是效率會比從寄存器中讀要慢很多。

本文就為大家分享到這里,希望小伙伴們會喜歡。