register:只能修饰局部变量变量和函数,修饰局部变量保存在CPU内部寄存器中,省去了CPU从内存中抓取数据的时间从而提高程序的运行效率;这些局部变量一般是常被访问的变量如循环变量,但register修饰的变量类型应被出所接受,而register修饰的变量可能不是在内存中存储,所以不能通过取地址获取变量地址。
static:既能修饰变量也能修饰函数。修饰变量,既能修饰全局变量也能修饰局部变量。修饰其局部变量延长其生命周期直到程序结束时才释放,修饰全局变量和函数只能在本文件中访问不能在别的文件中访问。
extern:外部声明(在一个文件中用另一个文件中的变量)一定要加声明变量类型。