Предупреждение 634 и Предупреждение 613: MISRA

У меня есть два сценария, где я не могу разрешить эти предупреждения .. Это повторяющиеся предупреждения

1) Warning 634: Strong type mismatch (type 'SPI_FSH_HANDLE') in equality or conditional#define SPI_NULL NULL
SPI_FSH_HANDLE  flash;
if (flash != SPI_NULL)

Я пытался проверить состояние NULL, но предупреждения все еще сохранялись.

2)Warning 613: Possible use of null pointer 'flash' in left argument to operator '->'

Часть кода:

if (strstr(flash->name, "M25P")!= SPI_NULL)

Как я могу избежать обоих предупреждений ???

-1

Решение

Второй должен быть исправлен путем тестирования flash перед разыменованием его.

Первое выглядит как глупое предупреждение. Если вы не можете отключить его, возможно, можно исправить путем тестирования if (flash)если у MISRA нет глупого правила, препятствующего этому, или if (flash != SPI_FSH_HANDLE(SPI_NULL)) иначе. Или, возможно, сделать SPI_NULL константа типа SPI_FSH_HANDLE или же void*, а не злой макрос, который (вероятно) расширяется до 0,

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]