如果把一個變量定義爲volatile,相當於告訴編譯器該變量可能隨時被改變,例如被操作系統或硬件改變。
因爲帶有volatile的變量可以在任何時刻改變,該變量的物理地址可能被頻繁的訪問,這就意味着編譯器
不能對這些變量實行優化
相反,一個變量未被定義成volatile,則編譯器認爲該變量不能在應用程序之外改變,因此編譯器可以對
這種變量實行優化
volatile一般應用在如下場合
1.訪問內存映射的外圍設備
2.在不同進程之間共用的全局變量
3.中斷服務程序中訪問的全局變量
如果把一個變量定義爲volatile,相當於告訴編譯器該變量可能隨時被改變,例如被操作系統或硬件改變。
因爲帶有volatile的變量可以在任何時刻改變,該變量的物理地址可能被頻繁的訪問,這就意味着編譯器
不能對這些變量實行優化
相反,一個變量未被定義成volatile,則編譯器認爲該變量不能在應用程序之外改變,因此編譯器可以對
這種變量實行優化
volatile一般應用在如下場合
1.訪問內存映射的外圍設備
2.在不同進程之間共用的全局變量
3.中斷服務程序中訪問的全局變量