2007年10月16日 星期二

volatile 的意義

From "現代嵌入式系統開發專案實務 - 菜鳥成長日誌與專案經理的私房菜"

C compiler 會對程式做最佳化
如果同一個變數 a1 =x; 寫三次
a1=0;
a1=1;
a1=2;
C compiler 會認為前兩次的設定是沒意義的
就會略過前兩次的設定

對於寫 driver的人來說阿
有可能這樣的設定
是要讓某個裝置執行不同的行為

所以可以宣告 volatile
不針對此變數做最佳化

透過Facebook分享

沒有留言: