|
在编写程序时,经常应用printf()函数来打印一些调试信息,如果调用此函数的地方比较多,那么系统运行时输出这些调试信息占用的时间与空间是相当大的,当系统运行没有故障时,应该把这些调试信息去掉,以节约时间与空间资源,如果只有一处printf调用,那么直接删掉就行了,如果有十处,一百处,甚至一千处调用,又该如何来删掉呢?而且删除这些调试信息时有可能还是部分删除,不是全部删除,如何来控制这种有选择的删除?
***********************************************
看看我的做法,截取部分代码如下:
//my_dbg.h
//若要开启调试,则定义此宏,否则,注释掉即可,
//这样程序中所有my_printf语句自动消失。
//#define MY_DBG
void redundancy(const char *p,...);
#ifndef MY_DBG
#define my_printf 1?(void)0:redundancy
#else
#define my_printf prinf
#endif
//my_dbg.c
void redundancy(const char *p,...)
{
p=p;
}
//main.c
int main(void)
{
my_printf("hahaha~~~");//此处 my_printf等效于printf,可以放心使用。在本例中,此语句没有被编译。
while(1);
return 0;
}
|
|