写c时时常会希望在调试时输出调试信息,以前都用#ifdef 的方法,今天读LWIP的代码才发现还有更聪明的写法!
写c时时常会希望在调试时输出调试信息,最后又删除这些语句,我以前常用
#ifdef DEBUG
printf("ERROR");
#endif
今天读lwip代码才发有更聪明的写法,看下面的小程序:
#include <iostream>
#include <stdlib.h>
#define MY_DEBUF 1
#if (MY_DEBUF==1)
# define MYDEB_PRINTF printf;
#else
# define MYDEB_PRINTF(void)
#endif
using namespace std;
int main(int argc, char *argv[])
{
printf("hehe");
MYDEB_PRINTF("HAHA");
printf("hehe");
return 0;
}
另外c99支持变参数的宏定义
#ifdef DEBUG
#define dbgprint(format,args...) \
fprintf(stderr, format, ##args)
#else
#define dbgprint(format,args...)
#endif 这是论坛的兄弟教导的:-)
|
阅读(1153) | 评论(0) | 转发(0) |