C基礎 const volatile等

volatile:

volatile是一個類型修飾符(type specifier),就像大家更熟悉的const一樣,它是被設計用來修飾被不同線程訪問和修改的變量volatile的作用是作爲指令關鍵字,確保本條指令不會因編譯器的優化而省略,且要求每次直接讀值。可理解爲每次都從內存地址中讀取數據,不從寄存器中讀取。


舉例:

精確地說就是,優化器在用到這個變量時必須每次都小心地重新讀取這個變量的值,而不是使用保存在寄存器裏的備份。下面是volatile變量的幾個例子:
1)並行設備的硬件寄存器(如:狀態寄存器)
2)一箇中斷服務子程序中會訪問到的非自動變量(Non-automatic variables)。一個例子是當一箇中斷服務子程序修改一個指向一個buffer的指針時。
3)多線程應用中被幾個任務共享的變量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章