c语言系列专栏: c语言之路重点知识整合
创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ
代码编译到执行的过程:c语言从源码到exe文件的过程
目录
从源代码到exe
1:预处理期(也叫预编译): 在这一阶段,源码中的所有预处理语句得到处理例如:#include语句所包含的文件内容替换掉语句本身,所有已定义的宏被展开。
2:编译期:编译器对源码进行词法分析、语法分析、优化等操作,最后生成汇编代码。
3:汇编期:生成机器语言代码,保存在后缀为.o的目标文件中
4:链接期:经过汇编以后的机器代码还不能直接运行。为了使操作系统能够正确加载可执行文件,文件中必须包含固定格式的信息头,还必须与系统提供的启动代码链接起来才能正常运行,这些工作都是由链接器来完成的。
5:执行期:执行.EXE文件,得到运行结果
预处理期过程
为了探究预处理期 先进行项目属性设置:
生成解决方案后,源debug文件原来的.obj文件变成了.i文件,使用记事本打开:
预处理的过程:源代码编译之前的环节,包含四次头文件,.i文件中即包含了四次。
创建.h文件:
pragma once作用:预处理 包含(拷贝)一次
预处理期就是将.h文件中的代码拷贝一份到主文件中
就是头文件的包含过程
预编译的指令需要使用#号,define也是#号,#include和#define有什么区别呢?
#include相当于复制粘贴的过程
#define相当于查找替换过程
他们都是预处理期的操作,然后再进行编译。