C语言的四种存储类型:
1.自动变量(auto)
在C语言中变量默认为auto变量,表示系统为自动变量分配内存,在函数体中声明则只能在当前函数体中使用,在main函数以及其他函数外声明即为全局变量,当退出函数体时,系统释放分配给自动变量的内存,此时变量值就会丢失.{int a;auto int a; }
其作用相同
2.静态变量(static):被声明为静态类型的变量,无论是全局的还是局部的,都存储在数据区中,其生命周期为整个程序,如果是静态局部变量,其作用域为一对{}内,如果是静态全局变量,其作用域为当前文件。静态变量如果没有被初始化,则自动初始化为0。静态变量只能够初始化一次。
3.**外部变量(extern)**如果一个文件调用另一个文件中的变量,则在调用文件中需要使用extern关键字声明变量
4.寄存器类型(register):声明为register的变量在由内存调入到CPU寄存器后,则常驻在CPU的寄存器中,因此访问register变量将在很大程度上提高效率,因为省去了变量由内存调入到寄存器过程中的好几个指令周期。