浅浅谈编译原理


     ★从开始编写的源代码到最后出现的黑框上的运行结果,编译器到底做了什么呢?写了这么多的代码,那源代码是怎么样被编译器给执行的呢?下面让我们一起讨论一下吧!

  这里我们先简单的了解一下程序的运行原理。大多数情况下,我们都会在Windows开发环境下进行开发,以C语言为例,它们会有这样的过程:

.c源文件——>预编译——>编译——>链接——>.exe可执行文件


①预编译
预编译又称为预处理,是做些代码文本的替换工作,主要就是为编译做的预备工作的阶段处理#开头的指令,比如拷贝#include包含的文件代码(例:#include<stdio.h>)#define宏定义的替换(例:#define PAI 3.14),条件编译(#ifdef、#else等指令)。

编译
    编译就是利用编译程序从各种语言编写的源代码产生目标程序的过程。它把高级语言设计变成计算机可以识别的二进制语言(1和0),编译程序把一个源代码翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码的生成;代码的优化;目标代码的生成。(这里的知识比较多,想了解很多的朋友,请戳——>编译)。最后在我们的项目文件夹下,就可以找到一个.obj的文件,这就是目标代码。

③链接

    编译完成之后,代码还不能被执行起来,现在我们有的只是一堆二进制码。链接器将编译转成的各个目标代码捆绑在一起,形成一个单一而完整的可执行程序(.exe文件),就是链接的过程。经过链接过程,最后在debug文件夹中的.exe文件就是可执行文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值