社区
C语言
帖子详情
通过函数指针获取函数名
shorerider77
2011-12-10 03:02:35
大家好,请问在C语言中有没有办法通过函数指针获取到函数名呢?或者说能否获得该函数的唯一标识符呢?请提供一下思路,我想了很久都没想出来。
说明一下:我现在只能得到这个函数的函数指针,平台是Linux,GCC编译器。
...全文
990
16
打赏
收藏
通过函数指针获取函数名
大家好,请问在C语言中有没有办法通过函数指针获取到函数名呢?或者说能否获得该函数的唯一标识符呢?请提供一下思路,我想了很久都没想出来。 说明一下:我现在只能得到这个函数的函数指针,平台是Linux,GCC编译器。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Vector_fz
2011-12-20
打赏
举报
回复
函数的指针就是函数的地址,而函数名则是函数的助记符
Vincent_Song
2011-12-20
打赏
举报
回复
呵呵,函数指针就是函数的地址,地址就是唯一标识!
shorerider77
2011-12-20
打赏
举报
回复
哎呀,前段时间忙起来都忘了这个贴了。我最后是把内存地址取出来作为其标识了。谢谢各位的回复。
bcypxl
2011-12-12
打赏
举报
回复
这个没法实现!
山中岁月
2011-12-12
打赏
举报
回复
如果是debug版的吧,感觉应该可以通过调试信息来获取函数名的,不过不知道怎么做
小时了了
2011-12-12
打赏
举报
回复
这样啊,那只能手工写一个指针到函数名的map,然后在调用函数指针的时候到map中查找函数名记录下来。
不过我很好奇楼主究竟要做什么,把你的原始需求说出来,大家也许可以帮到你
狂且
2011-12-10
打赏
举报
回复
地址, 地址, 地址
AnYidan
2011-12-10
打赏
举报
回复
[Quote=引用 1 楼 zshtang 的回复:]
不管是函数指针还是变量的指针,你都不可能通过指针获取原函数的名字或者变量的名字,因为那就是一个符号或者说标签而已,不会和内存中的变量内容有关联。
[/Quote]
++
shorerider77
2011-12-10
打赏
举报
回复
[Quote=引用 3 楼 xrunning 的回复:]
函数指针可以算作是唯一标志了,不会有重复。通过函数指针是拿不到函数名的,函数名只在编译时起作用编译后就不存在了。
[/Quote]
这个是倒没错,但是我是要记录下来的……所以麻烦
shorerider77
2011-12-10
打赏
举报
回复
[Quote=引用 5 楼 cao_julians 的回复:]
可以在被调用的函数中以字符串形式输出函数名
type functionName()
{
printf("%s",__func__);/*__func__是个标准宏,它给出当前函数名*/
}
[/Quote]
这正是麻烦的地方,我无法修改被调用函数,只有它的函数指针而已。
shorerider77
2011-12-10
打赏
举报
回复
[Quote=引用 4 楼 mougaidong 的回复:]
有函数指针了,还要函数名做什么?难道是给用户浏览使用嘛
[/Quote]
因为我是想要把程序运行过程中调用到的函数都记录下来,所以想找到这个函数的唯一标识,要能以文本形式来记录的东西。
cao_julians
2011-12-10
打赏
举报
回复
可以在被调用的函数中以字符串形式输出函数名
type functionName()
{
printf("%s",__func__);/*__func__是个标准宏,它给出当前函数名*/
}
turing-complete
2011-12-10
打赏
举报
回复
有函数指针了,还要函数名做什么?难道是给用户浏览使用嘛
小时了了
2011-12-10
打赏
举报
回复
函数指针可以算作是唯一标志了,不会有重复。通过函数指针是拿不到函数名的,函数名只在编译时起作用编译后就不存在了。
shorerider77
2011-12-10
打赏
举报
回复
[Quote=引用 1 楼 zshtang 的回复:]
不管是函数指针还是变量的指针,你都不可能通过指针获取原函数的名字或者变量的名字,因为那就是一个符号或者说标签而已,不会和内存中的变量内容有关联。
[/Quote]
那能不能得到这个函数的唯一标识呢,我是想把调用到的函数以文本形式记录下来。
21011111111
2011-12-10
打赏
举报
回复
不管是函数指针还是变量的指针,你都不可能通过指针获取原函数的名字或者变量的名字,因为那就是一个符号或者说标签而已,不会和内存中的变量内容有关联。
根据
函数
名
获取
函数
指针
实现注册机制。
文章讲述了如何通过
函数
名
获取
函数
指针
实现注册机制,包括基本的注册
函数
和从XML文件读取
函数
,以及如何将
函数
注册为SQLite的自定义SQL
函数
,以配合GDALDataset的executeSQL方法使用。
linux
函数
地址
获取
函数
名
,
函数
名
/
函数
地址/
函数
指针
本文详细解析了
函数
指针
的概念及其在程序中的应用,包括如何定义和使用
函数
指针
来调用
函数
,以及指针
函数
的特性。通过实例展示了
函数
指针
在实际编程中的灵活运用。
C中打印堆栈或者通过
函数
指针
获取
函数
名
本文介绍了一种在C语言中打印
函数
堆栈的方法。通过使用`execinfo.h`库中的`backtrace`
函数
和相关
函数
,可以在运行时
获取
当前调用栈信息,并通过设置链接器选项`-rdynamic`来输出
函数
名
。
C
函数
指针
本文探讨了在C语言中使用
函数
指针
时遇到的问题,特别是如何从
函数
指针
中
获取
函数
名
的方法。介绍了几种可能的解决方案,包括编译时参数调整、直接在调用中添加日志、使用printk以及一种简单的map方式实现
函数
名
查询。
根据
函数
指针
地址
获取
函数
名
本文详细介绍了如何使用 manbacktrace_symbols_fd 进行符号化处理,并提供了具体实例。重点在于通过添加编译参数 -rdynamic 来实现更有效的调试。
C语言
70,039
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章