C語言 01 volatile關鍵字

volatile緩存

是一種類型修飾符,提醒編譯器它定義的變量隨時都有可能改變,所以編譯後的程序每次須要存儲或讀取這個變量的時候,都會直接從變量地址中(內存中)讀取數據。若是沒有volatile關鍵字,則編譯器可能優化讀取和存儲,可能暫時使用寄存器(緩存)中的值,若是這個變量由別的程序更新,將出現不一致優化

volatile關鍵字的使用:spa

  1:中斷服務程序中修改的供其它程序檢測的變量須要添加volatile關鍵字。code

  2:多任務環境下幾個任務間共享的標誌應該加volatile關鍵字。blog

  3:存儲器映射的硬件寄存器一般也要加volatile說明,由於每次對它的讀寫可能不一樣。內存

volatile int a = 5;

總結:須要讀取內存中最新的狀態而不是緩存中狀態時使用volatile編譯器

相關文章
相關標籤/搜索