C语言由源代码生成的各阶段的作用
1、编译预处理阶段的作用
(1)读取c源程序,对伪指令(以#开头的指令)和特殊符号进行处理。预处理过程先于编译器对源代码进行处理。
(2)删除注释。
(3)检查包含预处理指令的语句和宏定义,并对源代码进行相应的转换。
宏定义指令:如#define指令
预处理过程会把源代码中出现的宏标识符替换成宏定义时的值。
2、编译
主要包括词法分析、语法分析、语义分析和中间代码生成、优化、目标代码生成
3、汇编
将汇编指令翻译成机器码
4、链接
主要将有关的目标文件彼此相连接生成客家仔、可执行的目标文件。
链接错误的原因有:
(1)函数没有实现;
调用了一个函数,但是在程序中没有该函数。
(2)名字写错;
使用了在本文件和其他库中没有定义的函数或者变量。
(3)出现多个。