请教一个宏的写法
我有一个写log的函数
LogError(char *msg,...);
现在,想在写log时,在这语句里插入__FILE__和__LINE__,但不修改msg的格式。
举个例子,
LogError( "Cxxx::Fun : par1:%d, par2:%d ", par1, par2);
它将在log里写入Cxxx::Fun : par1:1, par2:2之类的。
现在我想用同样的语句,在log里写入:
D:\xxx\yyy.cpp,128,Cxxx::Fun : par1:1, par2:2
改怎么写?
谢谢了。
[解决办法]
如果支持 C99 就用下面的, 不支持就只有用上面的, 不过在一些情况下改变了程序的语义 ...
#include <stdio.h>
#if 0
#define printf printf( "%s : %d ", __FILE__ , __LINE__ ); printf
#else
#define printf( __VAR_ARGS__ ) do { printf( "%s : %d ", __FILE__ , __LINE__ ); printf( __VAR_ARGS__ ); } while(0)
#endif
int main()
{
printf( "tnngx\n " );
return 0;
}
[解决办法]
__VAR_ARGS__
mLee79() 动作真快啊