C笔记系列二:变量存储类型

{ s t a t i c 静态类型 a u t o 动态类型 r e g i s t e r 存储器类型

变量声明格式:[存储类型] 变量类型 变量名
(当存储类型缺省时,默认为auto)

{ s t a t i c PCB

static

static变量,和程序代码一同存放在代码段中。在程序链接时,会对static变量分配空间并初始化,并在整个进程的生命周期中一直存在,不释放,有且仅有一份,无副本。在进程的执行过程中,除了一开始程序链接时的初始化外,static变量就不会再执行初始化操作(即在函数执行中,若遇见static初始化语句,会自动略过)。若static变量未被人为地初始化,则链接程序会自动初始化为0。
需注意,尽管变量一直存在,但是作用域并未扩大,还是仅在原来的作用域内才可见。全局变量其实也是static变量,只是其作用域为全局可见。

auto

在每次函数调用时分配存储空间,每完成以此函数调用,就会释放auto。

register

特性与auto相同,只是编译系统会把变量装入CPU的寄存器中。若无可用寄存器,则等同与auto。

猜你喜欢

转载自blog.csdn.net/deepinc/article/details/79673388