简介
在日后的维护过程中也是很宝贵的东西,怎么能说删除就删除呢,这里提供日志格式化输出的一种方式,主要用于平时调试。那些调试信息是那么的宝贵,
代码示例
#include <stdio.h>
#include <stdint.h>
#define DEBUG_ENABLE //enable debug setting
#ifdef DEBUG_ENABLE
#define BSP_Printf printf
#else
#define BSP_Printf(...)
#endif
void print_hex_as_string(char *pHead, uint8_t *pHEX, uint16_t len)
{
uint16_t i=0;
BSP_Printf("\r\n%s[%u]\r\n",pHead,len);
for(i=0;i<len;i++)
{
BSP_Printf("%.2X ",pHEX[i]);
if((i&0x000f) == 0x000f)
{
BSP_Printf("\r\n");
}
}
BSP_Printf("\r\n");
}
int main()
{
uint8_t data[] = {0x01,0x02,0x03};
print_hex_as_string("Hex:", data, 3);
return 0;
}
定位文件、函数、行、格式化输出
#define SYSTEMDebug
#ifdef SYSTEMDebug
#define SystemDebug(fmt,...) printf("%s:%s:%05d>>>>"fmt"",__FILE__,__func__,__LINE__,##__VA_ARGS__)
#else
#define SystemDebug(fmt,...)
#endif
使用示例:
int main()
{
SystemDebug("HELLO=%d\n", 123);
return 0;
}
输出如下: