gpt4 book ai didi

c - 在 C 中获取调用函数的名称(不使用预处理器)

转载 作者:太空宇宙 更新时间:2023-11-04 00:13:17 25 4
gpt4 key购买 nike

我想知道是否有一种方法可以在 C 中找到调用当前函数(在运行时)的函数。

我知道您可以在 gcc 中使用 __FUNCTION__,但是有没有不使用 C 预处理器的方法?

可能不会。

干杯

最佳答案

不,没有。 C 不是一种特别内省(introspection)的语言 - 诸如函数名称(或调用堆栈的片段)之类的东西在运行时根本无法以任何理智的方式获得。

如果出于某种原因,您正在寻找大量工作却收效甚微,那么您可以使用调试符号构建您的程序,并且您可以编写堆栈遍历和调试符号查找代码。然后你也许可以即时找到它。但要小心,因为如果你涉及任何 C++,你将在调试信息中看到的符号将用类型信息修饰。

你已经标记了这篇 gcc 帖子,所以相关的细节是可用的,但是这属于“不推荐”和“不保证编译器版本之间相同”的范围。

关于c - 在 C 中获取调用函数的名称(不使用预处理器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3434219/

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