- 什么是符号
- 什么是符号的定义,什么是符号的引用
- 链接符号的类型有哪些,各自有什么特点
- 符号表是什么
- 链接器对符号的解析规则、过程
一、
1、 什么是符号?
符号:就是其实程序中的 变量名 、 函数名 。
2、什么是符号的定义,什么是符号的引用?
符号的定义:就是程序中变量名、函数名的 定义 (位于定义位置的 变量名、函数名);
符号的引用:就是程序中变量名、函数名的 引用 (不在定义位置的 变量名、函数名);
3、 链接 符号的类型 有哪些,各自有什么特点?
每个 可重定位目标模块m 都有一个符号表 ,它包含了在m中定义和引用的符号,有 3种 链接器符号:
| 类型 | 特征 | 举例 |
|
Global symbols
(模块 内部 定义的 全局符号 ) |
由模块
m定义
并能被其他模块引用的符号。
例如,非static C函数和非 static的C全局变量(指 不带static 的函数\全局变量) | 如,main.c 中的全局变量名buf |
|
External symbols
( 外部 定义的 全局符号 ) | 由 其他模块定义 并 被模块m引用 的全局符号 | 如,main.c 中的函数名swap |
|
Local symbols
( 本模块 的 局部符号 ) |
仅由
模块
m定义和引用
的本地符号。
例如,在模块m中定义的带 static 的(C函数和全局变量) | 如,swap.c 中的static变量名bufp1 |
注意:1. 局部变量 temp分配


发布评论