C语言编译链接

在这里插入图片描述

前言
嗨,我是firdawn,在本章中我们将介绍,C语言编译链接的翻译环境和运行环境,下面和往常一样是本章的思维导图,那么,宝子们,让我们开始今天的学习吧!
在这里插入图片描述

一,翻译环境

我们在编译器中写出的 .c 文件为文本文件,而计算机底层能执行的是二进制的可执行程序,如果一段代码需要运行,就需要转换为 .exe(Windown环境中) 的二进制可执行文件,那么这中间是如何转换的呢,转换过程如下图:
在这里插入图片描述
在这里插入图片描述
如果再把编译器展开成3个过程,那就变成了下⾯的过程:
在这里插入图片描述

1.1 预编译

在预处理阶段,源⽂件和头⽂件会被处理成为.i为后缀的⽂件。
在这里插入图片描述

1.2 编译

编译过程就是将预处理后的⽂件进⾏⼀系列的:词法分析、语法分析、语义分析及优化,⽣成相应的汇编代码⽂件。

1.2.1 词法分析

array[index] = (index+4)*(2+6);

在这里插入图片描述
在这里插入图片描述

1.2.2 语法分析

接下来语法分析器,将对扫描产⽣的记号进⾏语法分析,从⽽产⽣语法树。这些语法树是以表达式为节点的树。在这里插入图片描述

1.2.3 语义分析

由语义分析器来完成语义分析,即对表达式的语法层⾯分析。编译器所能做的分析是语义的静态分
析。静态语义分析通常包括声明和类型的匹配,类型的转换等。这个阶段会报告错误的语法信息。
在这里插入图片描述

1.3 汇编

汇编器是将汇编代码转转变成机器可执⾏的指令,每⼀个汇编语句⼏乎都对应⼀条机器指令。就是根据汇编指令和机器指令的对照表⼀⼀的进⾏翻译,也不做指令优化。

1.4 链接

链接是⼀个复杂的过程,链接的时候需要把⼀堆⽂件链接在⼀起才⽣成可执⾏程序。
链接过程主要包括:地址和空间分配,符号决议和重定位等这些步骤。
链接解决的是⼀个项⽬中多⽂件、多模块之间互相调⽤的问题。
在这里插入图片描述

二,运行环境

在这里插入图片描述
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

firdawn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值