链接器在链接时会在程序中插入一些特殊的符号
__executable_start 程序起始地址
__etext 代码段结束地址
_edata 数据段结束地址
_end 程序结束地址
通过以下代码可以输出该地址
#include <stdio.h>
extern char __executable_start[];
extern char etext[],_etext[],__etext[];
extern char edata[],_edata[];
extern char end[],_end[];
int main(){
printf("程序起始地址:%X\n", __executable_start);
printf("代码段结束地址:%X\n",etext);
printf("数据段结束地址:%X\n",_edata);
printf("程序结束地址:%X\n",_end);
}
网友评论