Почему прикрытие помечает предупреждение за это?
Я не уверен, почему инструмент статического анализа кода скрывает флаги:
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 *
, Но, возможно, вам следует повторно посетить вопрос о том, должна ли переменная быть изменчивой, или инициализировать ее другим способом.