说明符和限定符
- auto:指明为自动变量,自动类型推断
- register:指示寄存器存储
- static:内部链接,文件作用域,存储持续性为静态,程序运行过程中一直存在
- extern:外部链接,程序作用域,存储持续性为静态,程序运行过程中一直存在
- thread_local: 可以与static和extern连用,指出变量的持续性于其所属线程的持续性相同
- mutable
- const:修饰的全局变量的链接性为内部的,类似于static。在函数后面使用const则将this限定为const,则this不能用来修改对象的成员变量(非成员函数不能使用const在函数末尾修饰函数),并不是用const修饰的变量都是静态的,静态指的是存储持续期。
cv限定符
- const
- volatile:禁止编译器优化
mutable
结构变量为const,使用mutable修饰的成员也可以被修改
函数和链接性
所有函数的春初持续性都是静态的,整个程序执行期间都存在。默认情况下,函数的连接性为外部链接。
// 可以声明为static,使函数成为内部链接的。
// 可以在文件中用extern来声明某函数来在外部文件
// 文件a.cpp
void swap(int& a, int& b){ // 函数定义
int te