volatile food(volatile c語言)
您好,今天小編胡舒來為大家解答以上的問題。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的內存地址上去讀,當然值會非常準確,但是效率會比從寄存器中讀要慢很多。
本文就為大家分享到這里,希望小伙伴們會喜歡。
文章版權及轉載聲明:
作者:baidianfeng365本文地址:http://www.inkvzc.cn/bdf/22618.html發布于 2023-12-27
文章轉載或復制請以超鏈接形式并注明出處白癜風知識網