#include<stdio.h>
#define PRINT_DBG(debug, ...)\
{\
if(debug) {\
fprintf(stderr, "%s %s [%d]: ", __FILE__, __FUNCTION__, __LINE__);\
fprintf(stderr, __VA_ARGS__);\
}\
}
#define PRINT_DBG1(tag,fmt,...)\
do {\
if(tag) {\
fprintf(stderr, "%s %s [%d]: ", __FILE__, __FUNCTION__,__LINE__);\
fprintf(stderr, fmt);\
}\
}while(0)
int main()
{
int i =3;
PRINT_DBG(1,"hello ... \n");
PRINT_DBG1(1,"world...%d\n",i); // 这里输出不是3,所以,还是用__VA_ARGS__这个宏才行。
return 0;
}