如何解决使 printf() 始终使用包装器打印函数名称
如何始终打印调用 printf()
的函数名称,而无需每次都提供信息?
解决方法
您可以使用可变参数宏:
#define printff(a,...) printf("%s(): " a,__func__,##__VA_ARGS__)
这个宏使用传递给 printf 的字符串 a
并在它前面加上 "%s(): "
,它将保存函数名称。函数名称 __func__
是第一个提供的变量,它将始终用于第一个提供的 %s
。 ##
之前的 __VA_ARGS__
处理对空 ...
的调用。
此宏可扩展为包含文件名 __FILE__
或行号 __LINE__
。
这应该适用于 C99 及更高版本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。