linux下通过宏进行打印

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

你可能感兴趣的:(linux)