变量的存储类型是指存储变量值的内存类型。变量的存储类型决定变量合适创建、何时销毁以及它的值要保持多久。
存储变量的三个地方:普通内存
运行时堆栈
硬件寄存器
凡是在任何代码块之外的变量总是存储于静态内存中,也就是不属于堆栈的内存,这类变量称为静态变量。
静态变量在程序运行之前创建,在程序的整个运行期间始终存在。
在代码块内部上面的变量的缺省存储类型是自动(automatic)的, 也就是说它存储于堆栈中。称为自动变量。关键字auto用于修饰这种存储类型。
在代码块中声明的变量,如果给它加上关键字static,存储类型变成静态,但是作用域仍然是该代码块。
关键字register可以用于自动变量的声明,提示它们应该存储于机器的硬件寄存器而不是内存中。这类变量称为寄存器变量。
寄存器变量比存储于内存的变量访问效率高。