c语言外部链接和内部连接,C语言的作用域和链接属性

C语言有4种不同类型的作用域:

代码块作用域:位于一对花括号之间的所有语句称为一个代码块, 在任意代码块内 声明 的标识符具有代码块作用域, 作用域为该标识符声明的位置到代码块结束花括号

文件作用域:一个源代码文件表示一个文件单位, 在所有代码块之外声明的标识符都具有文件作用域, 从它们声明之处到文件结尾都可以被访问到. 比如在main函数外声明的变量.

原型作用域:在函数原型(函数声明)中, 形参列表中的形参名具有原型作用域. 形参名只在形参列表中可见(两个圆括号之间).

函数作用域:简单来说, 函数作用域指的是语句标签可见范围为函数内. 由于语句标签更goto相关, 而使用goto是不好的习惯, 所以不讨论函数作用域.

C语言标识符有3种不同的链接属性:

外部链接属性:

具有external(外部)链接属性的标识符在不同源文件的均表示同一实体.

具有文件作用域的标识符在缺省存储类说明符的情况下具有external(外部)链接属性

使用extern关键字可以改变标识符的链接属性.

internal(内部)链接属性:

具有internal(内部)连接属性的标识符在同一源文件内的所有声明都指向同一实体, 但是位于不同源文件的多个声明则分属不同的实体.

正常情况下具有external(外部)链接属性的标识符使用static存储类说明符修饰后具有internal(内部)链接属性

none(无)链接属性:

none(无)链接属性的标识符的多个声明均表示不同实体.

具有代码块作用域或者函数原型作用域的标识符具有none(无)链接属性

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值