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