有時會看到在宣告 C 的變數時, 會前面會加個 volatile 的修飾詞,
網路上找到的說明如下:

我的解讀大概就是: 告訴編譯器, 這個變數不要做最佳化, 每次存取時你都給我老老實實的做, 不要給我偷懶!
但為何 RxHeadIndex, RxTailIndex… 這些都要被宣告成這類的型態, 它們若不加這種修飾詞會錯嗎?
volatile near unsigned char TxActivity;<br />volatile near unsigned char RxHeadIndex,RxTailIndex,RxErrors,CharRCVed,UARTActivityCountdown;<br />
網路上找到的說明如下:

我的解讀大概就是: 告訴編譯器, 這個變數不要做最佳化, 每次存取時你都給我老老實實的做, 不要給我偷懶!
但為何 RxHeadIndex, RxTailIndex… 這些都要被宣告成這類的型態, 它們若不加這種修飾詞會錯嗎?
沒有留言:
張貼留言