目录
计算机只能识别的文件是二进制文件
怎样将我们编写的源文件翻译为系统能够识别的二进制文件
源文件到目标文件的编译过程包括预编译、编译与汇编,统称为编译过程
编译
预处理作用:
1.删除注释: 删除编译过程中的各种注释
2.宏替换:将#define定义的符号进行替换
3.文件包含:#include 是一种最为常见的预处理,主要是做为文件的引用组合源程序正文。
编译:
作用:将C语言代码转换成汇编代码
具体要进行:
1.语法分析2.词法分析
3.语义分析
4.符号汇总
汇编
将汇编代码转换成二进制指令
目的:形成符号表
链接
将编译过程中的目标文件与链接库进行连接形成最终的可执行文件
1.合并链表
2.符号表的合并和重定位
运行环境
程序执行的过程:
1.程序必须载入内存中。在有操作系统的环境中:般这个由操作系统完成。在独立的环境中
程序的载入必须由手工安排,也可能是通过可执行代码置入只读内存来完成2.程序的执行便开始。接着便调用main函数。
3.开始执行程序代码。这个时候程序将使用应该运行时堆栈,存储函数的局部变量和返回
地址。程序同时也可以使用静态(static))内存,存储于静态内存中的变量在程序的整个执行过程
一直保留他们的值。4.终止程序。正常终止main函数:也有可能是意外终止。