C/C++程序编译过程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26822029/article/details/81045820

    我们写好一个c文件或者c屁屁文件,然后在IDE中按一下编辑按钮之后,如果没有报错,那么我们写的程序便转变成了可执行文件(windows下的exe文件)。中间经历了什么嘞?如下图所示:


    十分清楚明了了吧?从c程序到可执行程序之间的过程还是十分复杂的,要完整的弄清楚这中间的四个阶段需要掌握基本的编译原理知识和汇编指令(翻译)基本内容。下面简要的介绍一下四个阶段的基本工作内容。

1.预处理阶段

    1)这一阶段的主要功能是进行宏替换:读取C/C++源程序,对其中的伪指令(以#开头的指令)进行处理:①将#define对应的内容进行替换;②处理所有的条件编译指令,如:“#if”、“#ifdef”、“#elif”、“#else”、“endif”等;③处理“#include”预编译指令,将被包含的文件插入到该预编译指令的位置。

    2)删除注释。

    3)添加行号和文件名标识。

2.编译阶段

    这一阶段就进行编译原理介绍的词法分析、语法分析、语义分析、优化等等过程,生成汇编代码。

3.汇编阶段

    这一阶段将上一阶段生成的汇编代码进行对应翻译即可。

4.链接阶段

    通过链接器将一个个目标文件(或许还会有库文件)链接在一起生成一个完整的可执行程序。


参考资料:https://www.cnblogs.com/Lynn-Zhang/p/5377024.html

                https://blog.csdn.net/lm9140802/article/details/78348243

猜你喜欢

转载自blog.csdn.net/qq_26822029/article/details/81045820