存储类说明符共有5个:auto ,extern,static,register,typedef。
typedef本身和内存没有任何关系, 由于一些什么原因,归类到存储类说明符这块了。它就是类型重命名,给类型重新名个名字。
这5个就分了三种空间。
auto是栈区的空间,extern,static是静态存储区的空间,
register是寄存器的空间。
另外存储类说明符在一个变量上不允许出现两个。
解释:如果出现一个auto(存在栈区),又 出现一个extern(全局的,要存在静态存储区) 又存在栈区,又存在静态存储区。这就什么也不是了。
所以 存储类说明符 ,一个变量的修饰只能出现一个。之前演示 register修饰全局变量的时候,全局变量是静态的,存在静态存储区,是extern, 你再register,那么这个变量就有了两种空间 的属性,是不行的。
变量只能占一块空间,只能有一种空间的属性。