auto:
修饰局部变量,修饰的变量存储在栈区
auto int a ==(局部变量)int a;
register:
修饰局部变量,修饰的变量存储在寄存器中,建议用register修饰局部变量,提高运行速度,但是寄存器的内存空间很小,因此,当寄存器已满,存储在栈区!
![](https://i-blog.csdnimg.cn/blog_migrate/fbe566c1eba728a2efeca4978221b15e.png)
extern:
修饰全局变量,修饰的变量存储在静态区
作用:告诉编译器,该变量已经在其他文件中定义过了。
static:
局部变量:
1) 延长局部变量的生命周期
2) 如果局部变量没有初始化,他的值为0
3) 如果初始化了,则只能初始化1次
auto储存的数据类型
static储存的数据类型
全局变量:
限制作用域,只能在本文件内使用(当前.c文件内使用)