【发布时间】:2013-04-19 08:07:11
【问题描述】:
在 C 语言中,__FUNCTION__ 可用于获取 当前 函数的名称。
但是如果我定义了一个名为 a() 的函数并在 b() 中调用它,如下所示:
b()
{
a();
}
现在,在源代码中,有很多像 b() 这样调用 a() 的函数,例如c(), d(), e()...
是否可以在 a() 中添加一些代码来检测调用 a() 的函数的名称?
进一步:
- 很抱歉出现误导性错字。我已经更正了。
- 我正在尝试找出哪个函数调用 a() 以进行调试。一世 不知道你在同样的情况下是怎么做的?
- 而且我的代码在vxWorks下,但不知道是C99相关还是 别的东西。
【问题讨论】:
-
不确定。不过this可能对你有帮助
-
为什么要这样做?是为了调试目的吗?
-
如果这只是为了调试,您可以将 a 定义为宏,这样使用
__func__将根据需要返回 b。 -
哪个编译器有FUNCTION来返回当前函数的名字?在 C 标准中预见到的标识符是
__func__IIRC。 -
你写的是错误的。
__FUNC__返回当前方法名 AFAIK。要获取调用者,您必须查看堆栈跟踪
标签: c