參考 https://blog.csdn.net/FX677588/article/details/74615658
1、在C++中,mutable是為了突破const的限制而設(shè)置的。被mutable修飾的變量,將永遠(yuǎn)處于可變的狀態(tài),即使在一個const函數(shù)中,甚至結(jié)構(gòu)體變量或者類對象為const,其mutable成員也可以被修改,對業(yè)務(wù)邏輯的約束
2、volatile是一個類型修飾符。volatile修飾的數(shù)據(jù),編譯器不可對其進(jìn)行執(zhí)行期寄存器于寄存器的優(yōu)化。這種特性,是為了滿足多線程同步、中斷、硬件編程等特殊需要。遇到這個關(guān)鍵字聲明的變量,編譯器對訪問該變量的代碼就不再進(jìn)行優(yōu)化,從而可以提供對特殊地址的直接訪問,對編譯器的優(yōu)化約束