如何解决MISRA警告:MISRA 18.4(C90-2012 adv。)

时间:2015-07-20 09:00:34

标签: misra

我使用了一个API,它在正式的争论中捕获了参数的地址。但是我使用了日志并将该地址用于打印目的,因为我可以看到如下所示的MISRA警告:

  

MISRA.PTR.ARITH指针用于算术或数组索引   表达

如何修复此警告?

代码段(来自评论):

int8u my_api(uint8_t *a1,uint8_t *a2,uint8_t *a3)
{
  printf(" DeviceMAC: %02x%02x%02x%02x%02x%02x%02x%02x",
      a1[0],a1[1],a1[2],a1[3],a1[4],a1[5],a1[6],a1[7] );
  return 0;
}

1 个答案:

答案 0 :(得分:2)

MISRA区分参数的指针数组类型。如果要使用数组索引,则函数头应该类似于

int8u my_api(uint8_t a1[], uint8_t a2[], uint8_t a3[])