无论如何在c ++中从被调用的函数中获取调用函数名而不修改调用函数的代码?
答案 0 :(得分:-1)
不,没有。编译代码后,所有函数名和变量名都将丢失。
可能存在为调试目的而保留的调试信息,可能包含该信息。但它不是代码本身的一部分,无法通过标准C ++方法访问。
答案 1 :(得分:-1)
不,不是标准的C ++。
虽然大多数编译器都有特殊的私有函数来获取调用堆栈,但是如果你幸运的话,你可以将一个允许你将以前的函数地址类型转换为可调用的形式。但是 if 是可能的,那么如果之前的调用是成员函数,则必须小心,因为成员函数需要this
的额外参数。如果您没有对该对象的引用,则无法调用该成员函数。当然,您还必须了解所有其他参数类型和位置。
简而言之,可能可能,但这并不容易,而且很可能是危险的。