搜索
bottom↓
回复: 0

C语言入门了解篇—C语言编译流程

[复制链接]

出0入234汤圆

发表于 2022-1-21 16:58:35 | 显示全部楼层 |阅读模式
以下文章来源于:公众号:开源电子网,读取更多技术文章,请扫码关注

讨论发帖图.png



语言入门了解篇—C语言编译流程

      C语言入门了解篇-C语言编译流程

                                   (面试常见问题)


        当我们安装了集成环境之后,编写.c文件,一按下图红色框框的按键即“编译并运行”,就可以得到一个“.exe”后缀的可执行的C程序文件,这期间并非只有一道工序,而是分别经过了预处理、编译、汇编和链接四个流程。

       下图就是C程序的编译流程:

          1.jpg

       以上过程就是可以囊括为:高级语言->汇编语言->机器语言(二进制)


          2.jpg


     1.预处理


       由.c文件到.i文件,这个过程叫预处理。在源文件被编译前,首先要进行预处理的工作,也就是对源代码进行相对应的展开、替换和清理。

       ①在这个过程中,主要处理的事情:
       ②把代码注释部分去掉,不让其参与编译
       ③将所有的#define删除,并且展开所有的宏定义,简单来说就是字符替换
       ④处理所有的条件编译指令,例如#ifdef、#ifndef、#endif,简单来说就是带#的那些
       ⑤把“stdio.h”文件包含进来,即用“stdio.h”中的内容替换在“#include”位置


     2.编译


       由.i文件到.s文件,这个过程叫编译。编译的过程实质上是把高级语言翻译成机器语言的过程。简单来说,源文件被预处理之后,再以字符流的形式进行处理,进行词法和语法的分析,然后通过汇编器将源代码指令转变成汇编指令、生成相应的汇编文件。


     3.汇编

       由.s文件到.o文件,这个过程叫汇编。汇编是指把汇编语言代码翻译成目标机器指令的过程,也就是把汇编码转换成机器所能识别的二进制,通过把经过汇编之后生成的文件称为目标文件。


     4.链接

       由.o文件到可执行文件,这个过程叫链接。经过汇编之后生成的目标文件并不能立即被执行,还需要由链接器将代码在执行过程中用到的其他目标代码及库文件进行链接,最终生成一个可执行程序。

       假如.c文件中有用到printf函数,那么就需要找到包含该函数的标准库文件,对它进行链接。

       想不到IDE帮我们处理了这么多事情吧,作为工科男,我们也有必要了解这个编译流程,并且这个是面试常见的问题。

回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2022-7-2 04:36

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表