微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我们怎么知道来电函数的名字?

在C语言中,__FUNCTION__可用于获取当前函数名称.
但是如果我定义了一个名为a()的函数,它在b()中被调用,如下所示:
b()
{
    a();
}

现在,在源代码中,有很多像b()一样调用a()的函数,例如c(),d(),e()…

在()内部可以添加一些代码来检测调用a()的函数名称吗?

进一步:

对不起,误导性的打字错误.我已经纠正了
>我试图找出哪个函数调用a()进行调试.一世
在同样的情况下不知道你怎么做?
>我的代码是在vxWorks下,但我不知道它是否与C99或
别的东西

解决方法

没有什么你只能在一个.

但是,通过简单的宏观技巧,您可以实现所需的功能,IIUC显示调用者的名称.

void a()
{
    /* Your code */
}

void a_special( char const * caller_name )
{
    printf( "a was called from %s",caller_name );
    a();
}

#define a() a_special( __FUNC__)

void b()
{
    a();
}

原文地址:https://www.jb51.cc/c/112371.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐