您好,今天小编胡舒来为年夜家解答以上的题目。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的内存地址上去读,固然值会很是精确,可是效力会比从寄放器中读要慢良多。
本文就为年夜家分享到这里,但愿小火伴们会喜好。