0
從我已閱讀在網絡上和SO:C++常量VS揮發性
常量:
- 告訴變量不能使用 程序指令來改變編譯器。
- 因此,編譯器可以優化代碼。
揮發性:
- 變量是恆定的,但可以是從程序外面改變。
- 告訴編譯器每次從內存中讀取變量的值。
- 告訴編譯器不要對這個變量使用優化。
如果我的理解是正確的,那麼volatile就是另一種const。
那麼,下面的一行是什麼意思?
const volatile char A = 'C';
從我已閱讀在網絡上和SO:C++常量VS揮發性
常量:
揮發性:
如果我的理解是正確的,那麼volatile就是另一種const。
那麼,下面的一行是什麼意思?
const volatile char A = 'C';
沒有,volatile
不是 「另一種const
」。 volatile
確實不是的意思是「變量是恆定的」。
否則,你的觀點是準確的。所以,const volatile
指:
const
一部分)volatile
一部分)
此外,易失性意味着變量可以從其它源被更新,不只是從CPU(例如,外設寄存器在微控制器可以從GPIO或其他任何更新),所以喲你需要用指針來讀取它們。 – tilz0R
*變量是恆定的,但可以從程序外部改變*不正確。一個易失變量可以被修改。 – NathanOliver
@FrançoisAndrieux一些編譯器會將'const'變量放到非易失性存儲器中,這樣做可能會導致設備崩潰。 – tilz0R