一个多功能的打印函数

/* -------------------------------------------
   * DateCode: 2018年1月23日10:11:17
   * Athor: xiyuan255
   * Version: V1.0
   * Purpose: Println function
--------------------------------------------- */
int8_t arrayElemPrintln(const void *pString, 
                          const void *pArray, 
                          uint8_t length,
                          uint8_t ofBytes) // 1 or 2 and 4 
{
   assert(pString != NULL && pArray != NULL);
   
   if(((ofBytes < 1)||(ofBytes > 4))
        ||(ofBytes > 1 && ofBytes % 2 != 0)) 
      return -1;

   const uint8_t *pData = (uint8_t *)pArray;
   printf("[%s] <", (const char *)pString);
   
   pString = pArray; 
   while (length--) { 
      switch (ofBytes) {
         case 1: printf(" %02X",*pData);	
            break;
         case 2: printf(" %04X",*((const uint16_t *)pData)); 
            break;
         case 4: printf(" %08X",*((const uint32_t *)pData)); 
            break;
      }
      pData += ofBytes;	
   }
   printf(" >length:%d;\r\n",(pData-(uint8_t *)pString)/ofBytes);   
   return 0;
}
/* 这是个Lora项目在使用STM32为主控芯片下的快速排序的模板函数,
 * 其中: int16_t为signed short(2bytes)
         uint32_t为unsigned int(4bytes)
         uint8_t为unsigned char(1bytes)
   修改对应的类型,可直接使用VS 2010直接编译 */


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值