局部变量,全局变量,存储分类和宏定义
定义
给变量分配确定的存储单元,并不分配存储空间
作用域分类
局部变量:函数内部,也称内部变量,函数形参属于局部变量
全局变量从定义到程序结束为止
全局变量:函数外部定义,外部变量
全局变量与局部变量冲突时,优先局部变量
存储类型分类
自动,局部变量可以为自动和静态
静态,全局变量只能为静态
auto变量(自动)
定义变量时,无指定说明,或说明auto时,系统自动类别
存储在动态存储区,退出时,自动释放存储区
局部变量必须放在函数中,执行之前
register变量(寄存器)
与auto类似,只是变量保留在CPU之中,但寄存器有限,且没有地址,不能进行地址运算
static变量(静态)
在函数体中static定义局部变量时,可以称静态局部变量
在程序运行期间,一直存在,未对赋值时初值为0
只限于本编译单位使用,内部函数
extern变量 (外部)
扩展全局变量的作用域
被其他编译单位中函数调用,函数为非整型,需说明
宏定义
不带参数
#define 宏定义名 替换文本
带参数
#define 宏定义名(形参表) 替换文本
【例子1】
#define MU(x,y) ((x)*(y))
a = MU(5,2) = 10
【注意】
不得加;
名字不与其他相同
写两行时,比加\连接
终止宏定义
#undef
【例子2】
#define PI 3.14
...
#undef PI 3.14//不想让PI为3.14了