专业彩票网站建设,大连本地网站推广,阿里企业邮箱app,制作图片工具文章目录1 初识编译器2 总结1 初识编译器
我们平时口中所说的编译器#xff0c;是广泛的编译器。实际上#xff0c;编译器包括了以下四个部分#xff1a; 一个C代码被编译为可执行代码#xff0c;包括以下几个过程#xff1a; 下面就对上述的各个过程进行一个详细的说明是广泛的编译器。实际上编译器包括了以下四个部分 一个C代码被编译为可执行代码包括以下几个过程 下面就对上述的各个过程进行一个详细的说明
预编译
处理所有的注释以空格代替将所有的#define 进行宏展开处理条件编译指令 #if #ifdef #elif #else #endif处理include展开被包含的文件保留编译器需要使用的 #pragma 指令。这个后面的文章还会学习
预处理指令示例gcc -E file.c -o file.i
编译 对预处理所得到的 .i 文件进行词法分析语法分析语义分析 词法分析分析关键字标识符立即数等是否合法语法分析分析表达式是否遵循语法规则语义分析在语法分析的基础上进一步分析表达式是否合法 上面三个分析没有问题后进行代码优化生成相应的汇编代码文件。
编译指令示例gcc -S file.i -o file.s
汇编
汇编将编译生成的汇编代码转化为机器可以执行的指令
汇编指令示例gcc -C file.s -o file.o
链接
链接的内容比较重要放到下一篇文章学习讲解。
2 总结
预处理处理宏注释以及以 # 开头的符号编译 进行词法分析语法分析语义分析等汇编将汇编代码翻译成机器可以识别的指令。