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

可以检查函数指针

如何解决可以检查函数指针

假设我有以下函数对数字进行某种数学运算:

int apply(int (*fp)(int n),int before)
{
    printf("before: %d\n",before);
    int after = fp(before);
    printf("after: %d\n",after);
    return after;
}

这里有什么方法可以推断 *fp函数体内指向什么吗?我的想法不是,但也许有一些实用程序或其他工具可以给它一个函数地址,它会返回函数/内存标签名称。这有可能以某种方式做吗?

解决方法

不在标准 C 中,除了执行 if (fp == some_function)

有些系统可能有这样的功能,但它是为了调试,而不是反射。

,

这里有什么方法可以推断 *fp 指向函数体内的哪些指针吗?

fp 将是传入的任何函数的地址;您可以在那里访问字节,但是字节将被编译为代码,因此看起来不是特别友好。如果您使用调试器,当然可以单步执行该函数。

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