作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
从函数名可以得到起始地址,如何找到函数的结束地址?我在面试中被问到这个问题:
考虑我编写的函数 f() 已经越过文本部分并开始写入相邻部分(数据部分)。我该如何处理这种情况?他还补充说我应该通过 C 代码来处理它。我不应该看到符号映射文件并获取地址。
最佳答案
使用 GCC,您可以使用 &&
运算符获取标签的地址(是 - &&
,而不是 &
)。< br/>这可以按如下方式使用:
void f(void) {
printf("Start %p End %p\n", f, &&f_end);
f_end: return;
}
这不会给你确切的结尾,因为标签后面有一些尾声代码,但我认为它足以作为面试答案。
关于c - 如何在C程序中找到函数的结束地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11085633/
我是一名优秀的程序员,十分优秀!