第19课 编译过程简介

Posted kojull

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第19课 编译过程简介相关的知识,希望对你有一定的参考价值。

初识编译器

编译器做了什么

·预编译

  -处理所有的注释,以空格代替;

  -将所有的#define删除,并展开所有的宏定义;

  -处理条件编译指令#if,#ifdef,#elseif,#else,#endif;

  -处理#include,展开被包含的文件;

  -保留编译器需要使用的#pragma指令。

·编译

  -对预处理文件进行词法分析,语法分析和语义分析

    ·词法分析:分析关键字、标示符、立即数等是否合法;

    ·语法分析:分析表达式是否遵循语法规则;

    ·语义分析:在语法分析的基础上进一步分析表达式是否合法。

  -分析结束后进行代码优化生成相应的汇编代码文件

 

·汇编

  -汇编器将汇编代码转变为机器的可执行指令

  -每条汇编语句几乎都对应一条机器指令

 

·编程实验

  原代码单步编译示例:19-1.c

 

·小结

  编译的过程分为预处理、编译、汇编和链接四个阶段

    -预处理:处理注释、宏以及已经以#开头的符号

    -编译:进行词法分析、语法分析和语义分析

    -汇编:将汇编代码翻译成机器指令的目标文件

以上是关于第19课 编译过程简介的主要内容,如果未能解决你的问题,请参考以下文章

第19课 编译过程简介

第20课 链接过程简介

第19课 - 路径搜索的综合示例

第20课 链接过程简介

第19课 使用存储过程

第23课 #error 和 #line 使用分析