c语言中,得到函数caller的问题!

[复制链接]
 楼主| luocolor 发表于 2007-10-23 10:35 | 显示全部楼层 |阅读模式
一个函数void&nbsp;b(void){printf(&quot;who&nbsp;call&nbsp;me!?&quot;)},<br />另外一个函数void&nbsp;a(void){b();},<br /><br />在c语言中,怎样在函数b中知道是谁调用了它,并可打印该caller出来呢?<br />我知道java中可以实现,就不晓得c了。
computer00 发表于 2007-10-23 10:45 | 显示全部楼层

靠编译器不行,编译之后就不再有函数名的信息了。

除非你自己建立一张函数名的表。
 楼主| luocolor 发表于 2007-10-23 10:55 | 显示全部楼层

意思就是,自己需要完成编译器类似的工作!?

非常之恼火,看来!
high 发表于 2007-10-23 11:40 | 显示全部楼层

可以照着编译器提供的信息手动查询.

  
wowow 发表于 2007-10-23 11:43 | 显示全部楼层

被调函数多加一个参数吧

被调函数多加一个参数,告诉它是谁调的多省事。
xieqin 发表于 2007-10-23 13:17 | 显示全部楼层

看我的!

在函数B中把&nbsp;LR寄存器打印出来!!!<br />&nbsp;<br />然后呢,根据LR的值,去查link.map,看这个地址属于那个函数。&nbsp;这样就ok了<br /><br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

105

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部