Chinaunix首页 | 论坛 | 博客
  • 博客访问: 181872
  • 博文数量: 79
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 15
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-25 14:40
文章分类
文章存档

2015年(1)

2014年(1)

2013年(2)

2012年(1)

2011年(5)

2010年(2)

2009年(6)

2008年(20)

2007年(27)

2006年(14)

我的朋友

分类: C/C++

2006-12-16 21:30:49

写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

这是论坛的兄弟教导的:-)

阅读(1129) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~