_end , _etext 或 _edata 标识
用途
定义程序后的第一个地址,初始化的数据和所有数据。
语法
extern _end; extern _etext; extern _edata;描述
外部名称 结束 (_S), 文本 (_e)和 _edata 是由所有程序的装入程序定义的。 它们不是子例程,而是与以下地址关联的标识:
| 项 | 描述 |
|---|---|
| _etext | 程序文本后面的第一个地址。 |
| _edata | 初始化数据区域后的第一个地址。 |
| _end | 未初始化的数据区域后面的第一个地址。 名称 结束 (不含下划线) 定义的地址与 结束 (_S) (不含下划线) 定义的地址相同。 |
该程序的中断值是数据之外的第一个位置。 当程序开始运行时,此位置与 结束一致。 但是,许多因素可以更改中断值,包括:
- brk 或 sbrk 子例程
- malloc 子例程
- 标准 I/O 子例程
- 带有 cc 命令的 -p 标志
因此,请使用 布尔克 或 sbrk (0) 子例程 (而不是 结束 地址) 来确定程序的中断值。