C存储类
“存储类”变量确定该项是否具有 “全局”或 “本地”生存期。 C 调用这两生存期 “static”和 “自动”。全局生存期的项目存在并且在程序的整个执行的值。 所有函数具有全局生存期。
自动变量或变量与局部生存期,是分配的新存储,每次执行控制传递给它们定义的块。 当执行返回时,变量不再有意义的值。
C 提供以下存储类说明符:
语法
存储类说明符:
自动注册
static
extern
typedef
__declspec ( 扩展非阶级化修饰符顺序 )/* 特定于 Microsoft 的 *
除 __declspec,可以在声明中的 声明说明符 只能使用一种 存储类 说明符。 如果存储类的规范不会提交,块中的说明创建自动对象。
声明项与 自动 或 注册 说明符具有局部生存期。 声明项与 静态 或 extern 说明符具有全局生存期。
从 typedef 和 __declspec 语义与其他四种 存储类说明符 位置不同,它们分开讨论。 有关 typedef的具体信息,请参见 Typedef 声明。 有关 __declspec的具体信息,请参见 扩展的存储类的属性。
变量和函数声明的位置在源文件中还会影响存储类和可见性。 在这些函数定义之外的声明添加显示一个 “外部级别”。在函数定义中声明显示一个 “内部级别”。
每种存储类说明符的确切含义取决于两个因素:
该声明是否出现一个外部或内部级别
声明的项目是否是变量或函数
,这种 存储类说明符 从变量时,省略外部级声明的存储类说明符 和 内部级声明的存储类说明符 在每个描述 存储类说明符 最终演示和解释默认行为。 与函数声明中的存储类说明符 与函数讨论使用的存储类说明符。