C++ volatile和mutable

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

  

原文地址:https://www.cnblogs.com/suui90/p/12868158.html