可执行程序是.exe
vs2022:是一个集成开发环境
一.翻译环境
多个.c文件经过编译器,生成对应目标文件,多个目标文件和链接库一起经过链接器,生 成.exe
编译器的3步走(iOS):预处理,编译,汇编
1.预处理
2.编译
把代码变为汇编语言
2.1词法分析
将源代码程序输入扫描器,对着16个记号进行识别
2.2语法分析
通过语法分析器,对扫描产生的记号进行语法分析,从而产生语法树,语法树是以表达式为节点的树,以下面这个式子为例
2.3语义分析
通过语义分析器来完成语义分析,编译器做的是静态分析,主要是针对类型的
3.汇编
汇编器将汇编代码转化为机器可执行的指令,汇编的命令如下
4.链接
链接的时候是把一堆文件链接在一起生成可执行程序
链接过程主要包括:地址和空间分配,符号决议和重定位等
例如说,函数的调用,主函数中也会储存被调用函数地址(例如记为0x0000),在将多个.c文件链接时,会发现实际上被调用函数的地址(0x0010),那么0x0010就会将0x0000删去覆盖它。
以add函数为例,链接根据引用符号add在其他模块中查找add函数的地址,然后将.c中所有引用到add的指令重新修正,让他们的目标地址为真正的add函数的地址。对于全局变量的修正也是类似的方法。这个地址修正的过程也被叫做:重定位
二.运行环境
1.程序必须载入内存中,在有操作系统的环境中执行
2.程序的执行便开始,接着便调用main函数
3.在内存上,处理各种变量,如局部全局变量,返回地址等
4.终止程序