存储说明符:
- auto(C++11中不再是说明符)
用于类型推断
int a = 5;
auto b = a;
- register
用于在声明中指示寄存器存储。而在C++11中,它只是显示地指出变量是自动的。
- static
- extern
- thread_local (C++11新增的)
thread_local指出变量的持续性与其所属线程的持续性相同。生命周期就是线程的生命周期。
- mutable
即使结构(或类)变量为const,其某个成员也可以被修改。
cv-限定符
- const
- volatile
告诉编译器不要进行某种优化
mutable举例子:
d的const限定符禁止程序修改d的成员变量,但score成员是mutable说明符使得score不受这种限制。
struct data
{
char name[30];
int score;
};
const data d = {"hell", 0};
strcpy(d.name, "world"); //not allow
d.score = 11; //allow