作用域
一个标识符的作用域即它可以被使用的区域
代码块作用域 花括号内声明的(内层可以使用外层、同层的互不影响)
文件作用域 代码块外声明的
链接属性
一个变量或函数(即标识符)有三种链接属性:
none 总是当作独立的实体,即多个声明当作不同实体,通常局部变量为该属性
internal 本个文件内的所有声明都指同一个实体,通常被static修饰后
external 不同文件的声明都指同一实体,通常函数、全局变量缺省为该属性
储存类型
即指储存变量的值的内存的类型,其决定了变量的创建、销毁
static 声明在代码块外部的变量为静态变量,储存域静态内存中
auto 声明在代码块内部的变量为自动变量,储存在堆栈中
register 可用于自动变量的声明,将其变为寄存器变量,储存与寄存器中
static的两种使用方式
1.修饰函数或全局变量时,将改变其链接属性,其储存类型与作用域不变
2.修饰局部变量时,将改变其储存类型,但其链接属性与作用与不变,其变为静态变量再次进入代码块后其值任然存在,原有的声明,如(static int a=10),不会再改变它的值