![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
C语言编译的时候会不会先生成中间语言
1个回答
展开全部
C语言编译时,会生成中间语言叫做汇编语言,再由汇编生成机器语言!同时,C语言程序编译的过程经过4个阶段:预处理(Preprocessing)、编译(Compilation)、汇编(Assembly)、链接(Linking)。
1)预处理阶段在该阶段主要完成对源代码的预处理工作,主要包括对宏定义指令,头文件包含指令,预定义指令和特殊字符的处理,如对宏定义的替换以及文件头中所包含的文件中预定义代码的替换等,总之这步主要完成一些替换工作,输出是同源文件含义相同但内容不同的文件。
2)编译、优化阶段编译就是将第一阶段处理得到的文件通过词法语法分析等转换为汇编语言。优化包括对中间代码的优化,如删除公共表达式,循环优化等;和对目标代码的生成进行的优化,如如何充分利用机器的寄存器存放有关变量的值,以减少内存访问次数。
3)汇编阶段将汇编语言翻译成机器指令
4)链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的目标文件成为一个能够被操作系统装入执行的统一整体。
具体详情可以参照:
http://wenku.baidu.com/link?url=nrAyGIcswopQ87mIrclynQZG9x7CcU6YVxUMVOgIXcX3GuztRCT6CZYkFRdrF2IJ-VNW7nZQcjsQ0bafsL8BnFhlxkAJhRDtyNJ3rxmYE63
1)预处理阶段在该阶段主要完成对源代码的预处理工作,主要包括对宏定义指令,头文件包含指令,预定义指令和特殊字符的处理,如对宏定义的替换以及文件头中所包含的文件中预定义代码的替换等,总之这步主要完成一些替换工作,输出是同源文件含义相同但内容不同的文件。
2)编译、优化阶段编译就是将第一阶段处理得到的文件通过词法语法分析等转换为汇编语言。优化包括对中间代码的优化,如删除公共表达式,循环优化等;和对目标代码的生成进行的优化,如如何充分利用机器的寄存器存放有关变量的值,以减少内存访问次数。
3)汇编阶段将汇编语言翻译成机器指令
4)链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的目标文件成为一个能够被操作系统装入执行的统一整体。
具体详情可以参照:
http://wenku.baidu.com/link?url=nrAyGIcswopQ87mIrclynQZG9x7CcU6YVxUMVOgIXcX3GuztRCT6CZYkFRdrF2IJ-VNW7nZQcjsQ0bafsL8BnFhlxkAJhRDtyNJ3rxmYE63
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |