【C++Primer Chapter9】 内存模型和名称空间(2)

1. 存储说明符和cv-限定符

  • auto  
  • register
  • static
  • extern
  • mutable
  • const
  • volatile

2. auto 自动变量。

3. register 寄存器变量。

4. static 静态变量,用于作用域为整个文件的声明时,表示内部连接性;用于局部声明时,便是局部变量的存储持续性为静态的。

5. extern 表明是引用声明,引用其他地方定义的变量。

6. mutable 指出即使结构体(或类)变量为 const,被关键词 mutable 修饰的成员也可以被修改。

struct data{
    char name[30];
    mutable int accesses;
};
const data veep = {"Claybourne Clodde", 0};
strcpy(veep.name, "Joye Joux");  //invalid
veep.acesses++;  //valid

7. volatile 即使程序代码没有对内存单元进行修改,其值也可能发生变化。该关键字的作用是为了改善编译器的优化能力。

上一篇:C++ Primer 函数传参


下一篇:【C++】《C++ Primer 》第十一章