您好,欢迎访问本站博客!登录后台查看权限
  • 转载文章需要注意是否有转载标识,未经允许谢绝转载
  • 发贴请联系站长提权

C语言的编译过程

C/C++ adminXiongmao 2019-02-22 206 次浏览 0个评论
网站分享代码

大家平时会写各种程序,但是这些程序是怎么产生的呢,编译都有哪些步骤呢,这一般也是大家普遍的一些问题。

首先大家先要知道,我们使用的,不管是C/C++也好,C#/JAVA也罢,都属于高级语言,高级语言无法被机器所直接识别,因此我们编程需要借助编译器去编译;这个编译过程虽然由编译器去完成,但也还是需要去了解的。

1、预处理

首先我们写的代码,会被预处理,预处理阶段下会将#include、#define等全部展开,拿到真正的内容。因为像#include引用头文件,头文件的内容本身是不包含在我们的cpp文件里的,所以需要获取到真正的内容。

这里插播一条小知识,带#号的操作符都是预处理命令,会在预处理阶段被展开。


2、编译

经过预处理之后,编译器已经拿到了所有的内容,这时编译器会将所有内容变得更加接近机器能读懂的语言,也就是编译成汇编语言。汇编语言是低级语言,很接近机器语言,效率比高级语言更高,但也更难。这时所有源代码会被编译成obj文件,等待下一步处理。


3、汇编

经过编译之后,代码变成了更接近机器码的汇编代码,但是这时还不能被机器所识别,因此会进行进一步编译,将汇编代码转换为机器码,变成机器能识别的状态。


4、链接

经过汇编之后,所有源代码已经变成了机器码,但是各个目标文件和库文件还没有建立起联系,因此这时就会将它们一一链接并生成可执行文件。


经过上面4步,我们就可以得到我们可以在操作系统上执行的文件了,看似很简单的编译过程其实也意外的复杂。总体来说就是从高级变低级,从零散变整体的一个过程,了解之后对底层编程会有一定的帮助。


版权所有 转载需注明

已有 206 位网友参与,快来吐槽:

发表评论

分享:

支付宝

微信

站点统计