yaoweibin的专栏

做一个踏实的人

用户操作
[即时聊天] [发私信] [加为好友]
yaoweibin ID:yaoweibin
6096次访问,排名15832(1)好友0人,关注者1
yaoweibin的文章
原创 7 篇
翻译 0 篇
转载 1 篇
评论 1 篇
bingo的公告
欢迎各位新老朋友
最近评论
qpzkzp:wow power leveling
文章分类
收藏
    相册
    2年的民工生活
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 一个简单的消除调试打印方法收藏

     | 旧一篇: 分析对比主流Bootloader的性能

    我的工程都是在终端上运行,用C语言实现,调试时有很多打印信息,一开始也没有注意,现在准备把软件正式发布的时候,才发现这么printf屏蔽掉也是件麻烦的事情,或者用#ifdef DEBUG这个太烦,或者你查找printf并替换成//printf。这样的有点不安全,比如如果是printf与}此类括号写在一起的就会出错,当然一般是不会这么写的。

    我所做的是首先写一个my_printf(...)的函数,具体实现如下:

    #include <stdarg.h>

    #define DEBUG 0

    inline 
    static void my_printf(char* format,...)
     
    {
    #ifdef DEBUG
             va_list ap;
             va_start(ap, format);
             vprintf(format, ap);
             va_end(ap);
    #endif
     }

    你只要把上面这个函数的定义放在某个头文件里,然后让所有调用printf的源文件都包含这个头文件就可以了。

    然后把工程里面所有包含printf的函数都替换成my_printf(注意你的工程中是否有其他还有printf字符串的变量或函数,我这里只屏蔽掉了fprintf),用shell 实现:

    sed -i "s/printf/my_printf/g" `grep [^f]printf -rl .'

    好了,如果你不想有打印信息,只要把#define DEBUG 0 注释掉就可以了,不会增加任何目标代码。

    发表于 @ 2007年07月12日 21:17:00|评论(loading...)|编辑

     | 旧一篇: 分析对比主流Bootloader的性能

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © bingo