static __IO uint32_t TimingDelay; _IO是什麼意思?

__IO 一般宏定義為volatile,表示可讀可寫volatile 就是為了禁止編譯器對其最佳化,因為對於timingdelay來說 你要設定一個初始值 但是變化是在中斷中進行的 編譯器不知道 會吧這個變數最佳化掉,inline表示行內函...

C中關鍵字volatile的意思,主要作用是什麼?(通俗易懂的),謝謝。

舉個例子吧,一個函式用了一個外部的變數,但這個變數在此函式中沒有改變,只是引用,這時候編譯器會去做最佳化,把它的值暫放在內部暫存器中,用的時候讀取的是暫存器的值,而不是去訪問它的地址取值,這樣的話,當這個變數在外部發生了變化的時候,比如中斷...

Top