C作用域、链接属性、存储类型和初始化

  • 作用域

    1. 文件作用域
      • 任何在所有代码块之外声明的标识符都具有文件作用域,它表示这些标识符从他们的声明之处起直至该源文件的结尾都是可以被访问的
    2. 函数作用域
    3. 代码块作用域
      • 位于一对花括号之间的所有语句称为一个代码块

    4. 原型作用域

  • 链接属性



      1. external

      1. internal
        • 属于 internal 链接属性的标识符在同一个源文件内的所有声明都指向同一个实体,但位于不同源文件的多个声明则分属不同的实体
      2. none
        • 没有链接属性的标识符(none)总是被当作单独的实体,也就说该标识符的多个声明会被当作多个独立不同的实体
    • 下通过一个示例来展示一些默认情况:

        • 缺省情况下标识符 b 、c、f 的链接属性为 external ,其余标识符的链接属性则为 none
        • 因此如果另一个源文件也包含了标识符 b 的类似声明,并调用函数 c ,他们实际上访问的是这个源文件中所定义的实体
        • f 的链接属性之所以是 external 是因为它是一个函数名,在这个源文件中调用函数 f ,它实际上将链接到其它源文件所定义的函数,甚至这个函数的定义可能出现在某个函数库中
    • 关键字 extern 和 static 用于在声明中修改标识符的链接属性
      • static
        • 如果某个声明在正常情况下具有 external 链接属性,那么在其前面加上 static 关键字可以使其链接属性变位 internal ,如:


      • extern
        • extern 关键字为一个标识符指定 external 链接属性,这样就可以访问在任何位置定义的这个实体,下列举一简单实例:
          • 声明3为 k 指定 external 链接属性,这样函数就可以访问在其他源文件所声明的外部变量了

  • 存储类型








  • 初始化


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值