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查看大小
参考《程序员的自我修养—链接、装载与库》--第四章 静态链接