Я использовал один API, в котором он получил адрес параметра в формальном аргументе. Но был я журнал и использовать этот адрес для целей печати в том, что я получил MISRA предупреждения, такие, как показано ниже, как вы можете увидеть:Как исправить предупреждение MISRA: MISRA 18.4 (C90-2012 adv.)
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;
}
Не могли бы вы разместить образец кода, который вызывает предупреждение? – Melebius
int8u my_api (uint8_t * a1, uint8_t * a2, uint8_t * a3) { \t 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; } –