【发布时间】:2016-04-07 18:19:26
【问题描述】:
我正在用“C”实现一个记录器,核心功能是:
void log(Level tag, const char *message)
此函数将在与我的log.c 文件不同的客户端文件中调用。
我的问题是:
这个函数如何获得调用者文件的名称而不将其作为参数传递(例如添加另一个char *)参数,然后在调用者文件中传递__FILE__?
谢谢。
【问题讨论】:
-
您无法在
log函数中找到保存调用函数的文件名。 (注意:#include <math.h>也声明了一个函数log()— 具有非常不同的签名)。您必须将其作为参数传递。使用宏来自动化:#define LOG(tag, msg) debug_log(__FILE__, tag, msg)或类似的东西。