一、static
三个作用:
1、修饰全局变量
改变变量的作用率,变量只能在当前文件访问,不能在其他文件访问;
2、修饰局部变量
改变变量的生命周期,直到程序结束才释放;
3、修饰函数
改变函数的作用率,使函数只能在当前文件访问
二、extern
extern 是指变量或函数不在本源文件内声明的,可以放在函数或者变量前面,来修饰它们,从而可以引用外部函数或者变量。
类型: ertern 变量名 ; extern 函数名
三、const
可以用来修饰基本类型、构造类型、指针及其参合体。
只要一个变量前面用const修饰,就以为这该变量里的数据可以被访问,但不能被修改。
eg: const int a; 不能通过变量a来修改对应内存的值‘’
四、register变量(寄存器变量)
如果有一些变量使用频繁,为提高执行效率,允许将局部变量的值放在CPU中的寄存器中,需要用时直接从寄存器取出参与运算,不必再到内存中去存取。这种变量叫做寄存器变量。
五、auto变量(自动变量)
函数中的局部变量,如果不专门声明为static存储类别,都是动态的分配存储空间的,数据存储在动态存储区中。函数中的形参和在函数中定义的局部变量都属于此类,在调用该函数时,系统会给这些变量分配存储空间,在函数调用结束时就自动释放这些存储空间。这类局部变量称为自动变量。不写auto则隐含制指定为自动存储类别。
六、volatile——防止编译时被优化
被它修饰的变量表示该变量的值很容易由于外部因素发生改变,强烈要求编译器要老老实实地每次对变量进行访问时去内存里读取。
七、typedef
作用:为一种数据类型定义一个新名字。
目的:给变量一个易记且意义明确的新名字;
简化一些比较复杂的类型声明。
eg: typedef long byte_4;给数据类型long起个新的名字叫 byte_4.