宏从函数中获取函数名称和参数值

tun*_*h24 5 c c++ macros

我正在研究调试/日志记录程序,并且想知道是否可以创建一个我可以在每个函数中粘贴的宏,并且每次调用函数时它都会打印函数名和参数值.函数名称可以在编译时恢复,问题是如何打印参数值?

更新:我记得读过一篇文章来获取参数但是调用汇编代码和工作操作堆栈指针,这不是跨平台兼容的 - 我需要的东西.

Luc*_*ore 2

您可以使用__FUNCTION____func__宏作为函数名称。对于参数,我认为没有内置宏可以实现此目的。

其他有用的宏是__LINE____FILE__

编辑:

__FUNCTION__不是__func__标准的一部分,但它们受到广泛支持。

16.8处理预定义宏:

__cplusplus
__DATE__
__FILE__
__LINE__
__STDC_HOSTED__
__TIME__
Run Code Online (Sandbox Code Playgroud)

以及实现定义的宏:

__STDC__
__STDC_VERSION__
__STDC_ISO_10646__
Run Code Online (Sandbox Code Playgroud)

  • `__func__` *是*标准的一部分,但它不是宏。也许这就是你在那个地方没有找到它的原因。 (3认同)