存储持续性、作用域和链接性

5种变量存储方式
存储描述 持续性 作用域 链接性 如何声明
自动                                       自动 代码块 在代码块中(可使用关键字 auto)
寄存器 自动 代码块 在代码块中,使用关键字register
静态,无链接性 静态 代码块 在代码块中,使用关键字static
静态,外部链接性 静态 文件 外部 在函数外面
静态,内部链接性 静态 文件 内部 在函数外面,使用关键字static

        按 存储区域分,全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区,寄存器变量存放在CPU的寄存器中。

        链接性为 外部的变量通常简称为 外部变量,它们的存储持续性为静态,作用域为整个文件。外部变量是在函数外部定义的,因此对所有函数而言都是外部的。
        链接性为 内部的变量只能在其所属的文件中使用;但常规外部变量都具有外部链接性,即可以在其他文件中使用。对于外部链接性变量,有且只有一个文件中包含了该变量的外部定义。其他文件要使用该变量,必须在引用声明中使用关键字  extern
        
        再谈 const
        在C++中,const限定符对默认存储类型稍有影响。在默认情况下全局变量的链接性为外部的,但const全局变量的链接性为内部的。也就是说,在C++看来,全局const定义就像使用了static说明符一样。

        只能有一个文件可以包含前面的声明,而其他文件必须使用extern关键字来提供引用声明,只有未使用extern关键字的声明才能进行初始化:
         extern const int fingers;    //can't be initialized
        如果出于某种原因,程序员系统某个敞亮的链接性为外部的,则可以使用extern关键字来覆盖默认的内部连接性:
         extern const int states = 50;    //external linkage
        
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值