《程序员的自我修养》第4章---静态链接

本文详细介绍了链接器如何将目标文件合并成可执行文件,包括空间和地址分配、符号解析与重定位。重点讨论了C++中的重复代码消除和全局构造与析构,以及静态库链接的过程。同时,提到了C/C++运行库、静态库和动态库的区别与联系,强调了静态库在空间利用和程序初始化方面的考虑。

第4章 静态链接

4.1 空间和地址分配:

a.c :

extern int shared;

int main() 
{
   
   
	int a = 100;
	swap(&a, &shared);
}

b.c :

int shared = 1;
void swap(int* a, int* b)
{
   
   
    *a ^= *b ^= *a ^= *b;
}

对于链接器来说,整个链接过程,它的工作就是将几个输入的目标文件加工、合并成一个输出的可执行文件。

例如将输入的 a.o 和 b.o 文件合并成可执行文件 ab。

链接器的合并方式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值