代码之家  ›  专栏  ›  技术社区  ›  Kanji Viroja

如何修复MISRA警告:MISRA 18.4(C90-2012 adv.)

  •  1
  • Kanji Viroja  · 技术社区  · 9 年前

    我使用了一个API,它在一个正式的论证中捕获了参数的地址。但我使用了日志,并将该地址用于打印目的,因为我收到了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 回复  |  直到 9 年前
        1
  •  2
  •   Melebius    9 年前

    MISRA在 指针,指针 大堆 参数的类型。如果要使用数组索引,函数头应该如下所示

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