Почему прикрытие помечает предупреждение за это?

Я не уверен, почему инструмент статического анализа кода скрывает флаги:

CID 40172 (#1 of 1): Parse warning (PW.INCOMPATIBLE_PARAM)
1. incompatible_param: argument of type "volatile mpls_RuntimeInfo_t *" is incompatible with parameter of type "void *"

для этой строки:

memset(&SW_RuntimeInfo[idx],0,sizeof(mpls_RuntimeInfo_t));

когда SW_RuntimeInfo объявлен как volatile static mpls_RuntimeInfo_t SW_RuntimeInfo[LABEL_T_CNT] = { 0 }; в глобальном масштабе.
Почему он поднимает флаг и как это исправить?

1 ответ

Решение

Выдает предупреждение, потому что вы передаете энергозависимый указатель на энергонезависимый параметр. Если вы действительно хотите просто убрать предупреждение, просто приведите аргумент void *, Но, возможно, вам следует повторно посетить вопрос о том, должна ли переменная быть изменчивой, или инициализировать ее другим способом.

Другие вопросы по тегам