免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1261 | 回复: 5
打印 上一主题 下一主题

[函数] 问一个C/C++函数的实现 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-13 17:25 |只看该作者 |倒序浏览
比如我想写两个程序,my_enter(),my_leave()
需要完成如下功能,比如我有一个函数为
122_abc()
{
    my_enter();

    my_leave();
}

运行结果为:
enter function 122_abc
leave function 122_abc

其实目的就是打印出当前调用my_enter和my_leave的函数名,用于调试用
想了一段时间,不知道如何实现,各位大侠有没有什么思路?
我编程经验少,如果此问题比较幼稚,大家见笑了

论坛徽章:
0
2 [报告]
发表于 2006-12-13 17:38 |只看该作者
原帖由 mirnux 于 2006-12-13 17:25 发表
比如我想写两个程序,my_enter(),my_leave()
需要完成如下功能,比如我有一个函数为
122_abc()
{
    my_enter();

    my_leave();
}

运行结果为:
enter function 122_abc
leave function 122_abc

...

好像这个名字叫__FUNCTION__

论坛徽章:
0
3 [报告]
发表于 2006-12-13 17:43 |只看该作者
原帖由 soul_of_moon 于 2006-12-13 17:38 发表

好像这个名字叫__FUNCTION__

没看太懂,请明示,多谢。是说有系统自带有这么个__FUNCTION__函数可以实现这个功能么?

论坛徽章:
0
4 [报告]
发表于 2006-12-13 17:45 |只看该作者
痛苦在于__FUNCTION__这东西并不兼容,
有的支持 __FUNCTION__
有的支持 __func__
有的支持 __PRETTY_FUNCTION__

论坛徽章:
0
5 [报告]
发表于 2006-12-13 17:50 |只看该作者
搜了一下,大致明白了
回家后试试

GNU CC 预定义了两个标志符保存当前函数的名字,__FUNCTION__ 保存函数在源码

中的名字,__PRETTY_FUNCTION__ 保存带语言特色的名字。在 C 函数中,这两个

名字是相同的,在 C++ 函数中,__PRETTY_FUNCTION__ 包括函数返回类型等额外

信息,Linux 内核只使用了 __FUNCTION__。

论坛徽章:
0
6 [报告]
发表于 2006-12-13 17:54 |只看该作者
在LinuxSir上找了篇好文章可以解决我的问题了,谢谢大家
有兴趣的可以看看
利用__FILE__, __LINE__, __FUNCTION__等宏跟踪调试程序的运行
http://www.linuxsir.org/bbs/showthread.php?t=233309
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP