C语言从代码到可执行程序的过程

C语言从代码到可执行程序的过程

一个C语言程序,从代码到可执行程序的过程需要四个步骤:预处理,编译 ,汇编,链接。

1.预处理

预处理负责对源代码进行文本处理。主要处理代码中以字符#开头的命令。
有以下几个处理的地方:

(一)解析所有的条件预处理指令。
(二)解析定义的宏,将代码中使用的宏进行替换。
(三)删除注释
(四)解析 #include,将引入的头文件拷贝到当前命令位置
(五)添加行号号和文件标识(我们在vs上编译代码后报的错误中的行号就是这时添加的)。
(六)保留#program,留给编译过程。
完成这些后,以从c为后缀的文本文件生成了以.i为后缀的文本文件。

2. 编译

编译期间也要经过多个步骤,由.i的文本文件生成.s的文本文件。此文件为以汇编语句完成的代码
(一)词法分析。
(二)语法分析
(三)语义分析
(四)源代码优化
(五)目标代码生成
(六)目标代码优化

3.汇编

经过汇编阶段把汇编语句转换为机器指令,由.s的文本文件生成.o的二进制文件。

4.链接

链接器将所有二进制的目标文件和系统组件组合成一个可执行文件(.exe)。 (需要注意的是,我们在编译器是针对源文件进行编译的并且每个源文件都只会编译一次,所以汇编结束后每个源文件都会生成一个.o文件,这里的目标文件就是这些.o文件。)

猜你喜欢

转载自blog.csdn.net/weixin_45074185/article/details/105567760