gpt4 book ai didi

c - 如何在C程序中找到函数的结束地址?

转载 作者:太空狗 更新时间:2023-10-29 14:57:49 24 4
gpt4 key购买 nike

从函数名可以得到起始地址,如何找到函数的结束地址?我在面试中被问到这个问题:

考虑我编写的函数 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com