1、形式一
#ifdef DEBUG
#define MY_DEBUG(...) fprintf(stderr, __VA_ARGS__)
#else
#define
MY_DEBUG(...) printf(__VA_ARGS__)
#endif
实例:
调用:MY_DEBUG("Howdy"); //_ _VA_ARGS_ _扩展为“Howdy”
输出结果:printf("Howdy");
调用:MY_DEBUG("weight = %d, shipping = $%.2f\n", wt, sp); //_ _VA_ARGS_ _扩展为"weight = %d, shipping = $%.2f\n", wt, sp三部分
输出结果:printf("weight = %d, shipping = $%.2f\n", wt, sp);
2、形式二
#define MY_DEBUG(format,...)
\
do { \
fprintf(stdout,format,##__VA_ARGS__);
\ //后面的/不能缺少
} \
while(0)
#else
#define MY_DEBUG()
#endif