gpt4 book ai didi

c - 获取调用函数的C文件名

转载 作者:太空宇宙 更新时间:2023-11-04 05:36:20 28 4
gpt4 key购买 nike

我正在用“C”实现一个记录器,核心功能是:

void log(Level tag, const char *message)

此函数将在与我的 log.c 文件不同的客户端文件中调用。

我的问题是:

这个函数如何在不将其作为参数传递(比如添加另一个 char *)参数然后传递给它的情况下获取调用者文件的名称 __FILE__ 在调用者文件中?

谢谢。

最佳答案

首先要做的是重命名log()debug_log()或其他东西,以便您可以使用 #include <math.h>以及日志记录机制。谢谢,@JonathanLeffler。

接下来您要做的是更改 debug_log所以它接受文件名作为参数。

void debug_log(Level tag, const char *message, char const* filename);

然后,添加一个宏来帮助使用宏__FILE__自动。

#define LOG_MESSAGE(tag, message) debug_log((tag), (message), __FILE__)

然后,在客户端代码中使用宏而不是函数。

LOG_MESSAGE(my_tag, my_message);

关于c - 获取调用函数的C文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34586031/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com