我的工程都是在终端上运行,用C语言实现,调试时有很多打印信息,一开始也没有注意,现在准备把软件正式发布的时候,才发现这么printf屏蔽掉也是件麻烦的事情,或者用#ifdef DEBUG这个太烦,或者你查找printf并替换成//printf。这样的有点不安全,比如如果是printf与}此类括号写在一起的就会出错,当然一般是不会这么写的。
我所做的是首先写一个my_printf(...)的函数,具体实现如下:
你只要把上面这个函数的定义放在某个头文件里,然后让所有调用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...)|编辑