volatile food(volatile c語(yǔ)言)
您好,今天小編胡舒來為大家解答以上的問題。volatile food,volatile c語(yǔ)言相信很多小伙伴還不知道,現(xiàn)在讓我們一起來看看吧!
1、我就用上面的例子吧volatile int i = 10;int k = i;這段代碼如果沒有加上volatile,它的執(zhí)行過程是 i = 10, 10 ->reg寄存器,k = reg值,就是說,k=i實(shí)際上是從寄存器里讀出來的。
2、這樣快捷高效,當(dāng)然并不是每次都這樣,因?yàn)榧拇嫫饔邢蕖?/p>
3、如果在10->reg寄存器的時(shí)候,i存儲(chǔ)的內(nèi)存變化了,也就是別的線程修改了i的值,k=i仍然會(huì)按照i=10來執(zhí)行加上volatile后,執(zhí)行過程是 i = 10, k = *(int *)(&i); 它會(huì)從i的內(nèi)存地址上去讀,當(dāng)然值會(huì)非常準(zhǔn)確,但是效率會(huì)比從寄存器中讀要慢很多。
本文就為大家分享到這里,希望小伙伴們會(huì)喜歡。
文章版權(quán)及轉(zhuǎn)載聲明:
作者:baidianfeng365本文地址:http://www.lkxg.cn/bdf/22618.html發(fā)布于 2023-12-27
文章轉(zhuǎn)載或復(fù)制請(qǐng)以超鏈接形式并注明出處白癜風(fēng)知識(shí)網(wǎng)