69,368
社区成员
发帖
与我相关
我的任务
分享
#define dprint(X, ... ) printf( X, __VA_ARGS__ )
注意X和...之间有逗号
或者用 ##即可。。。
#define dprint(X,args... ) printf( X, ##args)
注意args和...之间没逗号// 有的编译器支持 "##__VA_ARGS__","..." 可以为空:
#define LOGPRINT(fmt, ...) printf(fmt, ##__VA_ARGS__)
// 有的编译器不支持 "##__VA_ARGS__",只能写成这样:
#define LOGPRINT(...) printf(__VA_ARGS__)
#include <stdio.h>
#define debug(fmt, ...) \
printf("%s:%d " fmt "\n", __FILE__, __LINE__, __VA_ARGS__)
int
main(int argc, char *argv[])
{
debug("argc=%d", argc);
return 0;
}
/* output:
hello.c:10 argc=1
*/
#define LOG(format, ...) printf(format, ##__VA_ARGS__)
给你一个我用来调试代码用的
#ifdef DEBUG
#define LOG_DEBUG(log_name, format, ...) \
fprintf(log_name, "\033[32m%s %s:%d %s()\033[0m DEBUG| "format"\n", __DATE__, __FILE__, __LINE__, __func__, ##__VA_ARGS__)
#else
#define LOG_DEUGG(log_name, format, ...)
#endif