C/C++编译原理及过程整理

本文详细介绍了C/C++的编译过程,包括预编译、编译、汇编和链接四个步骤。预编译处理宏定义、头文件包含等;编译涉及词法分析、语法分析、语义分析和代码优化;汇编将汇编语言转换为机器语言;链接解决目标文件间的依赖,分配地址并重定位符号。
摘要由CSDN通过智能技术生成

面试被问到C编译原理,所以回来整理一下。

编译主要分为四个大步骤:预编译、编译(.s、.asm)、汇编(.obj、.o、.a、.ko)、链接(.exe、.elf、.axf等),在C/C++中统称为编译。
前面文章 https://blog.csdn.net/a063225/article/details/90181715 介绍过集成开发环境、编译器,这里再说明一下,集成开发环境是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器,调试器和图形用户界面工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。

 编辑器:编写代码的一些窗口。

 编译器:检查用户代码的一些语法错误,将其编译成汇编代码。

 汇编器:将编译出来的汇编文件编译成一定功能的目标代码。

连接器:将目标代码连接成可执行文件。
(一)预编译

使用的gcc命令是:gcc –E
对应于预处理命令cpp
a. 宏定义指令:将所有的#define删除,并且展开所有的宏定义。
b. 条件编译指令:处理所有的条件预编译指令,比如#if #ifdef #elif #else #endif等。
c. 头文件包含指令:处理#include 预编译指令,将被

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值