存储说明符

Posted ZSoYoung

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了存储说明符相关的知识,希望对你有一定的参考价值。

C语言中提供了存储说明符auto,register,extern,static说明的四种存储类别。四种存储类别说明符有两种存储期:自动存储期和静态存储期。其中auto和register对应自动存储期。具有自动存储期的变量在进入声明该变量的程序块是被建立,它在该程序块活动时存在,退出该程序块时撤销。
 
在函数内部定义的变量成为局部变量。在某些C语言教材中,局部变量称为自动变量,这就与使用可选关键字a u t o定义局部变量这一作法保持一致。局部变量仅由其被定义的模块内部的语句所访问。换言之,局部变量在自己的代码模块之外是不可知的。切记:模块以左花括号开始,以右花括号结束。
对于局部变量,要了解的最重要的东西是:它们仅存在于被定义的当前执行代码块中,即局部变量在进入模块时生成,在退出模块时消亡。
定义局部变量的最常见的代码块是函数。
 
整数变量x被定义了两次,一次在func1()中,一次在func2()中。func1()和func2()中的x互不相关。其原因是每个x作为局部变量仅在被定义的块内可知。
语言中包括了关键字auto,它可用于定义局部变量。但自从所有的非全局变量的缺省值假定为auto以来,auto就几乎很少使用了。

以上是关于存储说明符的主要内容,如果未能解决你的问题,请参考以下文章

LR静态存储/动态存储/指针变量脚本说明

空声明中的静态结构警告无用的存储类说明符

此声明没有存储类或类型说明符

编译器行为和“不推荐使用注册存储类说明符”

存储过程

动态变量和静态变量