.data和.text段合并

a.c

#include <stdio.h>  
extern int share;
int main(void)  
{  
int a=100;
swap(&a,&share);
}  


b.c

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


编译

#gcc -c a.c b.c

 

链接

#ld a.o b.o -e main -o ab

 

查看

#objdump -h  文件

VMA即虚拟地址

size即大小

file off即偏移量

 

.text段被分配到地址0x08048094 大小0x62字节

.data段被分配到地址0x080490f8 大小0x4字节

0x27+0x3A=0x61

0+4=4

 

size查看大小

 

参考《程序员的自我修养—链接、装载与库》--第四章 静态链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值