2013-03-21 24 views
2

有没有办法从C++调用函数中获取调用函数名而不修改调用函数的代码?从C++调用函数调用函数名

+0

我不认为这是可以做到的,至少在标准C++中不行。 – Nawaz 2013-03-21 07:10:38

+3

请参阅:http://stackoverflow.com/questions/353180/how-to-i-find-the-calling-function-name – Tushar 2013-03-21 07:12:57

+0

代码以调试模式构建。 – 2013-03-21 07:13:19

回答

-1

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

可能有调试信息保存用于可能具有该信息的调试目的。但它不是代码本身的一部分,不能通过标准C++方法访问。

-1

不,不是标准的C++。

虽然大多数编译器都有特殊的私有函数来获取调用堆栈,但如果幸运的话,您可以使用允许将前一个函数地址转换为可调用函数的形式。但是如果这是可能的,那么如果前一个调用是成员函数,那么你必须小心,因为成员函数需要this的额外参数。如果您没有对该对象的引用,则无法调用成员函数。当然,你也必须知道所有其他的参数类型和位置。

总之,它可能可能是可能的,但它不会很容易,它很可能是危险的。