register 关键字功能:
请求编辑器尽可能地将变量存在cpu内部存储器中,省去抓取数据时间,提高程序运行效率。
修饰寄存器变量:让变量值保持到寄存器中,频繁被访问的变量可上请为register变量。
注:
①register只能修饰局部变量,全局变量会被多个任务访问,当修饰为register时,只被当前 进程知道,所以全局变量不能使用register。
②不能使用取地址获取register修饰变量地址,因为register变量用的是寄存器地址,而“&”取的是内存地址。
③register只能修饰cpu所能接受的变量(数据类型)。
static 关键字功能:
static修饰局部变量,延长其生命周期,使其能够在程序执行完后释放。
static 修饰全局变量,只能在本文件中访问,不能在其他文件中访问。
static 修饰函数, 只能在本文件中调用,不能在其他文件中调用。
注:
static 修饰变量全部保持在静态数据区,未初始化系统会自动初始化为0.
extern 关键字作用:
外部声明,声明它是在其他文件定义的。
注:extern 声明时要标注变量类型。
const 关键字作用:
const 修饰的变量只读。
const 修饰变量不可使用变量名修改此空间(空间内内容可以用其他方式修改)。
例:
const int *p;
不可通过p修改p指向空间
const int p
不可通过p修改p对应空间
注:
const 修饰变量前一定要初始化变量。
const 修饰函数形参时不能在函数中修改实参的值。