你的vs编译软件是如何使你的程序在电脑上跑起来的呢?

一.     一个编译软件编译一个程序的过程分为编译,汇编,链接四部分,然后得到一个可执行的文件,即就是我们的目标代码。目标代码当然就是我们有一定逻辑顺序的二进制数啦!

二.   下来简单的说一下,编译,汇编,链接的具体过程。
编译:编译之前会做一些简单的准备工作,那准备工作就是预处理啦。

预处理:在预处理阶段,程序只执行以“#”号开头的命令,即预处理命令,那预处理命令有宏定义,条件编译,还有布局控制。

#include<文件名>或#include"文件名”,这是将我们文件中所包含的内容放在其定义的位置

宏定义:在预处理时将函数中使用宏的地方替换成其对应的内容;

条件编译:如果满足了我们的条件,就将满足我们条件的程序放在主函数中,不满足条件的内容在这时就不会放到我们的程序中;

总而言之,在预处理阶段我们的程序还是我们的高级语言,只是在这一阶段做的这些事情会减少我们编译器的负担,在写程序时,我们通常会写注释,而在此阶段,我们的注释也会被去掉。

接下来就编译了,就是将源文件中的程序通过编译程序翻译为汇编代码,注意这里的源文件可能会有多个,这时生成的文件为.obj文件。

汇编:通过汇编程序将源程序中的汇编代码翻译为机器所能识别的二进制代码,这时生成的文件为.o文件。

链接:将各源文件中经汇编所得的二进制代码链接起来使得它们在main函数所在的源文件中,这时的这些文件就变成一个有逻辑顺序的可执行的二进制程序啦,运行就可以得到我们想要的结果,但为什么要链接呢?因为C语言是一个模块化的程序设计语言,即我们会把我们的功能分为几个不同的模块来实现,每个模块放在不同的源文件中,最后的链接是将这些源文件组合成有逻辑顺序的瞬间,使的这个可执行程序中的二进制代码变成一个有逻辑,可以代表我们思想的一段数字序列。若不链接,则它们就只是一堆乱码被放在文件中,毫无意义


猜你喜欢

转载自blog.csdn.net/weixin_40797414/article/details/80006583