c++语言编译过程,c程序编译步骤
Yyds干货库存
(面试常见问题)
当我们安装了集成环境后,我们编写。C文件,并按下图中红框中的按钮“编译运行”,我们就可以得到一个可执行的C程序文件,带有“.exe "后缀。在这期间,不是只有一个过程,而是四个过程:预处理、编译、汇编和链接。
下图是C程序的编译过程:
以上过程可以归为:高级语言-汇编语言-机器语言(二进制)。
1.预处理
从。c文件到。I文件,这个过程称为预处理。在编译源文件之前,首先要做的就是预处理,即对源代码进行扩展、替换和清理。
(1)在这个过程中,主要要处理的事情:
删除代码的注释部分,防止其参与编译。
删除所有#define,展开所有宏定义,简单来说就是字符替换。
处理所有条件编译指令,如#ifdef、#ifndef、#endif,只处理那些带#的。
包含“stdio.h”文件,即在“#include”位置替换“stdio.h”的内容。
2.编制
从。我申请。s文件,这个过程称为编译。编译的过程本质上就是把高级语言翻译成机器语言的过程。简单来说,就是对源文件进行预处理后,以字符流的形式进行词法和语法分析,然后由汇编器将源代码指令转换成汇编指令,生成相应的汇编文件。
3.汇编
从。s文件到。o文件,这个过程叫做汇编。汇编是指将汇编语言代码翻译成目标机器指令的过程,即把汇编代码转换成机器可以识别的二进制,调用汇编后生成的文件作为目标文件。
4.链接
从。o文件到可执行文件,这个过程称为链接。汇编后生成的目标文件不能立即执行,链接器需要链接代码执行过程中用到的其他目标代码和库文件,最终生成一个可执行程序。
如果printf函数在。c文件,需要找到包含这个函数的标准库文件并链接。
没想到IDE为我们处理了这么多事情。作为工科男,我们有必要知道这个编译过程,这也是面试中常见的问题。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。