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