Volatile:中文解釋是易變的,不穩定的。在我們的編輯器中,常常會將我們的代碼優化,提高代碼的執行速度,關于編輯器是怎樣優化代碼而導致錯的,請查閱《深入淺出AVR》其中就有詳細的說明,這里就說說怎么避免錯誤的產生吧,代碼編輯器優化代碼的時候,會深入到內存空間,但如果有一個語句沒有寫操作,或者是讀取操作,編輯器就自作聰明的保存了該內存空間的某一時刻的值, 用于以后的計算,雖然該內存單元中內容改變了,但是程序中用到的變量還是該時刻的保存值,多以會出現一些意想不到的錯誤,而Volatile的作用就是提醒編譯器,這個內存單元空間中的內容是在變動的,你千萬不要優化這個變量呀~~~恩,編譯器當然會聽話咯~所以在以下幾種情況中,都必須使用volatile:
1:對于在主函循環中使用的全局變量,如果其值可能在某一中斷處理程序中被更新
2:對于映射到內存單元的寄存器
3:多線程系統中,被多個線程共享的變量,
新聞熱點
疑難解答
圖片精選