1

正式な引数でパラメーターのアドレスをキャッチする 1 つの 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;
}
4

1 に答える 1

2

MISRA では、パラメーターのポインター型と配列型に違いがあります。配列インデックスを使用する場合、関数ヘッダーは次のようになります。

int8u my_api(uint8_t a1[], uint8_t a2[], uint8_t a3[])
于 2015-07-20T10:04:02.077 に答える