- 链接的本质
- 三类目标文件
- 目标文件中目标代码举例
- 目标文件的格式标准
- ELF标准格式的两种视图
//一个C语言程序举例
---------------------------main.c-----------------------------
int buf[2] = {1,2}; //全局变量
void swap();
int main(){
swap();
return 0;
}
-------------------------------------------------------------
--------------------------swap.c----------------------------
extern int buf[];
int *bufp0 = &buf[0]; //全局变量
static int *bufp1; //静态变量
void swap() //buf数组的0索引和1索引的值互换
{
int temp; //局部变量
bufp1 = &buf[1];
temp = *bufp0;
*bufp0 = *bufp1;
*bufp1 = temp;
}
//每个模块有自己的代码,数据(初始化全局变量,未初始化全局变量,静态变量,局部变量)
//局部变量分配在栈中,不会在过程(函数)外被引用,因此不是符号定义
生成的可执行目标文件已经经过符号解析和重定位了。