c++ - 预定义的宏来识别调用函数?

标签 c++ c macros

是否有任何预定义的宏来标识调用函数。

打印我们使用的当前函数名

printf("%s", __FUNCTION__);

比如如果函数 a 调用 b 并且控制权在 b 中,那么有没有办法找出 a?

最佳答案

没有。为此,预处理器必须知道哪些函数调用了您的函数。但是,当时无法获得此信息。对于(动态或静态)库,此信息实际上在编译时永远不会完全可用。

编辑:如@stefaanv 的评论所述,您必须使用运行时方式,例如他在运行时链接的 StackWalker 库。这是您知道哪个函数调用了您的函数的唯一一点。

关于c++ - 预定义的宏来识别调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22503589/

相关文章:

c - C中函数的多重定义

c - 编写 C 语句,清除两位而不干扰其他位

debugging - SPSS宏从变量打开CSV

c++ - 如何获得相同的MAC地址?

macros - 关于匿名 "self referential"数据结构的建议/讨论

loops - 基于变量的 SPSS for 循环

c++ - "Overriding"ostream& 运算符<<

c++ - C/C++ : any way to get reflective enums?

c++ - While循环中的C++ cin输入验证

python - 使用ctypes时如何替换libm?