目录
1. 程序的翻译环境和执行环境
2. 详解编译+链接
2.1 翻译环境
2.2 编译本身也分为几个阶段
2.2.1 预编译(预处理)
2.2.2 编译
2.2.3 汇编
2.2.4 链接
2.3 运行环境
写在最后:
1. 程序的翻译环境和执行环境
翻译环境:在这个环境中源代码被转换为可执行的机器指令。
执行环境:它用于实际执行代码。
2. 详解编译+链接
2.1 翻译环境
下图是程序编译的过程:
1.源文件通过编译转换成目标文件,
2.链接器将每个目标文件链接,形成一个可执行程序(exe后缀的文件),
3.链接器也引入该程序在C标准库应用的函数,以及程序员自己写的函数。
2.2 编译本身也分为几个阶段
2.2.1 预编译(预处理)
1. #include 头文件的包含,
2. #define 定义符号的替换,
3. 删除注释,
4. 文本操作。
2.2.2 编译
1. 把C语言代码翻译成了汇编代码:
包含:
语法分析
词法分析
语义分析
符号汇总
2.2.3 汇编
将汇编代码翻译成二进制的指令(存放到目标文件)
符号汇总后:形成符号表。
2.2.4 链接
1. 合并段表
2. 符号表的合并和重定位
最后形成可执行程序。
2.3 运行环境
1. 程序必须载入内存中,
如果是有操作系统的环境,工作由操作系统完成,
如果是独立的环境,也必须手工载入。
2. 程序开始,调用 main 函数。
3. 终止程序。正常终止main函数;也有可能是意外终止。
写在最后:
以上就是本篇文章的内容了,感谢你的阅读。
如果喜欢本文的话,欢迎点赞和评论,写下你的见解。
如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。
之后我还会输出更多高质量内容,欢迎收看。