C存储类

“存储类”变量确定该项是否具有 “全局”或 “本地”生存期。 C 调用这两生存期 “static”和 “自动”。全局生存期的项目存在并且在程序的整个执行的值。 所有函数具有全局生存期。

自动变量或变量与局部生存期,是分配的新存储,每次执行控制传递给它们定义的块。 当执行返回时,变量不再有意义的值。

C 提供以下存储类说明符:

语法

  • 存储类说明符:
    自动

    注册

    static

    extern

    typedef

    __declspec ( 扩展非阶级化修饰符顺序 )/* 特定于 Microsoft 的 *

除 __declspec,可以在声明中的 声明说明符 只能使用一种 存储类 说明符。 如果存储类的规范不会提交,块中的说明创建自动对象。

声明项与 自动注册 说明符具有局部生存期。 声明项与 静态 或 extern 说明符具有全局生存期。

从 typedef 和 __declspec 语义与其他四种 存储类说明符 位置不同,它们分开讨论。 有关 typedef的具体信息,请参见 Typedef 声明。 有关 __declspec的具体信息,请参见 扩展的存储类的属性

变量和函数声明的位置在源文件中还会影响存储类和可见性。 在这些函数定义之外的声明添加显示一个 “外部级别”。在函数定义中声明显示一个 “内部级别”。

每种存储类说明符的确切含义取决于两个因素:

  • 该声明是否出现一个外部或内部级别

  • 声明的项目是否是变量或函数

,这种 存储类说明符 从变量时,省略外部级声明的存储类说明符内部级声明的存储类说明符 在每个描述 存储类说明符 最终演示和解释默认行为。 与函数声明中的存储类说明符 与函数讨论使用的存储类说明符。

请参见

概念

声明和类型