debug分模块、分级别打印控制代码,调试使用

本文介绍了一种用于调试的代码实现,通过定义宏实现分模块和分级别打印,控制调试信息的输出。示例中展示了如何使用这些宏进行不同模块和级别的调试输出。
摘要由CSDN通过智能技术生成

 

#include <stdio.h>

#define PRINT_LEVEL   3
#define debug(level, format, args...)  /
if(level>>8 && (level&0xFF) > PRINT_LEVEL){  /
 printf("%s[%d]:  ", __FILE__, __LINE__);  /
 printf(format, ##args);  /
}

 
#define TRACE_ENTRY()  /
do{  /
 printf("Enter Function %s().../n", __FUNCTION__);  /
}while(0)

#define TRACE_EXIT()  /
do{  /
 printf("Exit Function %s().../n", __FUNCTION__);  /
}while(0)


#define module1  1
#define module2  0

#define level1  1
#define level2  2
#define level3  3
#define level4  4
#define level5  5
#define level6  6

#define moduel1_level1  (module1<<8 | level1)
#define moduel1_level2  (module1<<8 | level2)
#define moduel1_level3  (module1<<8 | level3)
#define moduel1_level4  (module1<<8 | level4)
#define moduel1_level5  (module1<<8 | level5)
#define moduel1_level6  (module1<<8 | level6)

#define moduel2_level1  (module2<<8 | level1)
#define moduel2_level2  (module2<<8 | level2)
#define moduel2_level3  (module2<<8 | level3)
#define moduel2_level4  (module2<<8 | level4)
#define moduel2_level5  (module2<<8 | level5)
#define moduel2_level6  (module2<<8 | level6)

 

int main()
{
 TRACE_ENTRY();

 debug(moduel1_level1, "%s/n", "moduel1_level1");
 debug(moduel1_level2, "%s/n", "moduel1_level2");
 debug(moduel1_level3, "%s/n", "moduel1_level3");
 debug(moduel1_level4, "%s/n", "moduel1_level4");
 debug(moduel1_level5, "%s/n", "moduel1_level5");
 debug(moduel1_level6, "%s/n", "moduel1_level6");
 
 
 debug(moduel2_level1, "%s/n", "moduel2_level1");
 debug(moduel2_level2, "%s/n", "moduel2_level2");
 debug(moduel2_level3, "%s/n", "moduel2_level3");
 debug(moduel2_level4, "%s/n", "moduel2_level4");
 debug(moduel2_level5, "%s/n", "moduel2_level5");
 debug(moduel2_level6, "%s/n", "moduel2_level6");

 TRACE_EXIT();

 return 0;
}

 

 

 

#define signed     char        s8

#define unsigned char        u8

 

#define signed     short       s16

#define unsigned short       u16

 

#define signed     int           s32

#define unsigned int           u32

 

#define signed     long long       s64

#define unsigned long long       u64

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值