Не сочетайтесь между объявлениями функции или объявлениями переменной
Этот дефект происходит, когда объявление функции или объявление переменной не совпадают с другими экземплярами функции или переменной.
Когда несоответствие находится между двумя объявлениями переменной в различных единицах компиляции, типичный компоновщик следует алгоритму, чтобы выбрать одно объявление для переменной. Если вы ожидаете объявление переменной, которое отличается от один выбранный компоновщиком, вы видите неожиданные результаты, когда переменная используется.
Подобная проблема может произойти с несоответствием в объявлениях функции.
Фиксация зависит от типа несоответствия объявления. Если оба объявления действительно относятся к тому же объекту, используйте то же объявление. Если объявления относятся к различным объектам, изменяют названия той из переменных. Если вы меняете имя переменной, не забудьте вносить изменение во всех местах, которые используют переменную.
Иногда, несоответствия объявления могут произойти, потому что объявления затронуты предыдущими директивами предварительной обработки. Например, объявление происходит в макросе, и макрос задан на одном пути к включению, но неопределенный в другом. Эти несоответствия объявления могут быть хитрыми, чтобы отладить. Идентифицируйте расхождение между двумя путями к включению и зафиксируйте конфликтные макроопределения.
Если вы не хотите устранять проблему, добавьте комментарии в свой результат или код, чтобы избежать другого анализа. Смотрите Результаты Polyspace Адреса Через Исправления ошибок или Выравнивания.
Группа: Программирование |
Язык: C | C++ |
Значение по умолчанию: на |
Синтаксис командной строки: DECL_MISMATCH |
Удар: высоко |
ID CWE: 685, 686 |