一個(gè)定義為 volatile 的變量是說這變量可能會(huì)被意想不到地改變溪窒,這樣,編譯器就不會(huì)去假設(shè)這個(gè)變量的值了车猬。精確地說就是霉猛,優(yōu)化器在用到這個(gè)變量時(shí)必須每次都小心地重新讀取這個(gè)變量的值,而不是使用保存在寄存器里的備份珠闰。下面是 volatile 變量的幾個(gè)例子:
1). 并行設(shè)備的硬件寄存器(如:狀態(tài)寄存器)
2). 一個(gè)中斷服務(wù)子程序中會(huì)訪問到的非自動(dòng)變量(Non-automatic variables)
3). 多線程應(yīng)用中被幾個(gè)任務(wù)共享的變量