C++ 中 volatile 關鍵字有什麼用?


這裡我們來了解一下 C++ 中 volatile 限定符的含義。我們宣告變數時即可應用 volatile 限定符。它用於告訴編譯器,該值可能會隨時更改。下面是 volatile 的一些特性。

  • volatile 關鍵字不能刪除記憶體賦值。
  • 它不能在暫存器中快取變數。
  • 值不能按賦值順序更改。

讓我們看看如何使用 volatile 關鍵字。

volatile int a;
int volatile a;

這兩個宣告是正確的。與其他資料型別一樣,我們可以使用 volatile 指標、結構、聯合等。volatile 結構和聯合本身可以是 volatile 的,它們的成員變數也可以是 volatile 型別。

volatile 用於不同的位置。對於記憶體對映的外圍暫存器、一些由其他函式或中斷服務例程訪問的全域性變數,或者在一些多執行緒應用程式中,可以使用 volatile。

示例

int main (){
   int value;
   value++;
}
int main (){
   volatile int value;
   value++;
}

有兩塊程式碼。在第一塊程式碼中沒有 volatile 關鍵字。因此對於第一種情況,該變數將從記憶體複製到 CPU 暫存器,然後執行操作。在第二種情況下,有 volatile 關鍵字。因此,在這種情況下該變數不會從記憶體複製到暫存器。

更新日期:2020 年 9 月 1 日

11000+ 次檢視

開啟您的 職業生涯

完成課程後獲得認證

立即開始
廣告