变量的分类
一、按数据类型分类
1、整数型
①、char ; unsigned char
②、int ; unsigned int
③、short int ;unsigned int
④、long ;unsigned long
2、浮点型
① float
②double
3、指针
4、结构体
5、联合体
7、枚举型
8、数组
二、按变量存储类型
1、auto (动态存储类型)
动态存储类型变量只能是局部变量,调用相应函数时为该变量开辟内存空间,调用结束后释放该变量的内存空间。需要赋初值,初值不定。
2、static (静态存储类型)
静态变量可以在函数内部定义(必须加static),也可以在函数外部定义。程序执行时就为该变量开辟空间,然后一直占用该内存空间。
static的用法:
①、局部变量加static:函数内的变量可以使用static来防止变量释放,从而保持上次调用函数时的值供下次调用时使用。
②、全局变量加static:函数外部的变量为全局变量,对于该工程的所有文件都可见,使用static可以使某一文件中的外部变量只对该文件可见,从而限制了全局变量的作用域,这样不同的文件可以定义同名的外部变量。
3、extern(外部变量)
该关键字只用于声明,而不用于定义。
全局变量对该工程的所有文件都可见,但文件不可以直接使用外部文件的全局变量,需要使用extern来声明才可以使用。
故:对于全局变量,加static限制全局变量的作用域,加extern声明其外部文件可用。他们是对立的。
三、按作用域
1、局部变量(定义在函数内部的变量)
只允许在定义它的函数内部使用,在函数外的其它任何地方都不可见。
可以与全局变量同名,但调用函数时使用的是局部变量。
需要赋初值。
2、全局变量(定义在函数外部的变量)
不需赋初值,默认为0.
四、对于C51还可以按存储位置定义
data、idata、xdata
总:
1、局部变量定义在函数内部,默认为auto型,可以使用static定义为静态变量。
2、全局变量定义在函数外部,默认为对所有文件可见,可使用static来限制作用域(仅该文件使用),和使用extern来外部声明(可外部使用)。
函数也可以加static来限制作用范围
本文详细介绍了变量的分类,包括按数据类型(如整数、浮点、指针等)、存储类型(auto、static和extern)以及作用域(局部变量和全局变量)。重点讲解了如何通过static和extern控制变量可见性和生命周期。

994

被折叠的 条评论
为什么被折叠?



