[读书笔记]程序员的自我修养(2)

本文详细介绍了软件开发中从源代码到可执行文件的过程,包括预处理、编译、汇编和链接等步骤。重点解释了预编译的处理规则及链接器在目标代码地址确定中的作用。

第二章 编译和链接

1. 预处理、编译、汇编和链接
比如source code and Header files----预处理----》preprocessed(.i文件)------编译------》assembly(.s文件)--------汇编--------》object file(.o文件)------and static/dynamic library-----链接------》executable(.out文件)

2. 预编译的主要处理规则
将所有的"#define"删除,并且展开所有的宏定义
处理所有条件预编译指令
处理"#include",将包含的文件插入到该预编译指令的位置。注意,这个过程是递归进行
删除所有注释
添加行号和文件名标识,以便于调试和编译产生的错误和警告
保留所有"#pragma"指令,编译器需要使用它们

3. 目标代码的地址还没确定怎么办?连接器的作用。
静态链接——模块拼装
链接过程:地址和空间的分配、符号决议(静态的)、重定位

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值