【问题标题】:calling function name from called function in c++ [duplicate]从C++中的被调用函数调用函数名[重复]
【发布时间】:2013-03-21 07:09:24
【问题描述】:

在不修改调用函数代码的情况下,有没有办法在c++中从被调用函数中获取调用函数名?

【问题讨论】:

标签: c++ visual-c++


【解决方案1】:

不,没有。代码编译后,所有函数名和变量名都会丢失。

出于调试目的而保留的调试信息可能包含该信息。但它不是代码本身的一部分,无法通过标准 C++ 方法访问。

【讨论】:

    【解决方案2】:

    不,不在标准 C++ 中。

    尽管大多数编译器都有特殊的私有函数来获取调用堆栈,但如果幸运的话,您可以将先前的函数地址类型转换为可调用的形式。但是如果有可能,那么您必须小心之前的调用是否是成员函数,因为成员函数需要为this 提供额外的参数。如果您没有对该对象的引用,则不能调用成员函数。当然,您还必须了解所有其他参数类型和位置。

    简而言之,它可能是可能的,但这并不容易,而且很可能很危险。

    【讨论】:

      猜你喜欢
      • 2010-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多