volatile:
-
功能:即使程序不修改内存单元,值也会发生变化(硬件或其他程序修改)
-
作用:改善编译器的优化能力(编译器默认将常用·假设值不变的变量加入寄存器,使用 volatile 后将不优化)
mutable:
指出即使结构或类变量为 const ,其某个成员也可以被修改
struct data { char name[20]; mutable int accesses; ... }; const data veep{"Claybourne Clodde",0,...}; strcpy(veep.name, "Joye Joux"); //not allowed veep.accesses++; //allowed