当前位置:鱼C工作室 >带你学C带你飞 > 查看文章

第一季:语法基础 – 作用域和链接属性 | 带你学C带你飞S1E32

作用域和链接属性

 

让编程改变世界

Change the world by program


 

作用域

 

我们发现当变量被定义在程序的不同位置时,它的作用范围是不一样的。这个作用范围就是我们所说的作用域。例如函数的形式参数以及函数内部定义的变量,我们将它们称之为局部变量,它们的作用域仅限于该函数的函数体,因此它们具备代码快作用域;如果将变量定义于函数的外部,那么该变量是所有函数均可见的,称之为全局变量。它的作用域是整个文件,我们就说它具备文件作用域。

 

那么 C 语言编译器可以确认 4 种不同类型的作用域:代码块作用域、文件作用域、原型作用域和函数作用域。

 

…… 此处省略N多内容,具体请看视频讲解 ……

 

链接属性

 

简单的来说,编译器将你的源文件变成可执行程序需要经过两个步骤:编译和链接。编译过程主要是将你写的源代码生成机器码格式的目标文件,而链接过程则是将相关的库文件添加进来(比如你在源文件中调用了 stdio 库的 printf 函数,那么在这个过程中,就把 printf 的代码添加进来),然后整合成一个可执行程序。

 

1

 

当然,这是最简单的介绍,大家有兴趣可以看一下这篇扩展阅读:编译器的工作流程,这里说这个,主要是我们要引入一个新的知识,叫做链接属性。

 

链接属性是个什么东西呢?

我们知道大型的程序都有好些个源文件构成,那么在不同文件中的同名标识符,编译器是如何处理的呢?这就要看链接属性了。

 

在 C 语言中,链接属性一共有三种:

external(外部的)– 多个文件中声明的同名标识符表示同一个实体

internal(内部的)– 单个文件中声明的同名标识符表示同一个实体

none(无)– 声明的同名标识符被当作独立不同的实体

 

…… 此处省略N多内容,具体请看视频讲解 ……

 

【课后作业】S1E32:作用域和链接属性 | 课后测试题及答案

【知识点备忘】S1E32:作用域和链接属性


为您推荐

报歉!评论已关闭.