700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【C语言进阶深度学习记录】十五 编译过程简介

【C语言进阶深度学习记录】十五 编译过程简介

时间:2018-06-17 21:19:48

相关推荐

【C语言进阶深度学习记录】十五 编译过程简介

文章目录

1 初识编译器2 总结

1 初识编译器

我们平时口中所说的编译器,是广泛的编译器。实际上,编译器包括了以下四个部分:

一个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 总结

预处理:处理宏,注释,以及以 # 开头的符号编译: 进行词法分析,语法分析,语义分析等汇编:将汇编代码翻译成机器可以识别的指令。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。