holly:
嗯, C 也可以, 用函数指针+全局变量
[阅读: 853] 2005-08-11 08:14:16
写个例子
#include <stdio.h>
#include <stdarg.h>
#define LOGPRINT log_function(__FUNCTION__, __LINE__)
typedef int (* print_func)(const char * format, ...);
static const char * s_pFunctionName;
static int s_lineNumber;
print_func log_function(const char * pFunctionName, int lineNumber)
{
s_pFunctionName = pFunctionName;
s_lineNumber = lineNumber;
return print;
}
int main()
{
char * str = "aaa";
int i = 0;
return LOGPRINT("%s - %d\n", str, i);
}