Не сочетайтесь между typedef
операторы
Это средство проверки деактивировано в Polyspace® по умолчанию как Вы Анализ кода. Смотрите Средства проверки, Деактивированные в Polyspace, когда Вы Кодируете Анализ По умолчанию (Polyspace Bug Finder Access).
Этот дефект происходит когда typedef
операторы приводят к конфликтным базовым типам для одного из этих типов данных:
size_t
ssize_t
wchar_t
ptrdiff_t
Если вы изменяете базовый тип size_t
, ssize_t
, wchar_t
, или ptrdiff_t
, у вас есть противоречивые определения того же типа. Единицы компиляции с различным включают пути, может потенциально использовать разного размера типы, вызывающие конфликты в вашей программе.
Например, скажите, что вы задаете функцию в одной единице компиляции, которая переопределяет size_t
как без знака долго. Но в другой единице компиляции, которая использует size_t
определение от <stddef.h>
, вы используете ту же функцию в качестве extern
объявление. Ваша программа столкнется с несоответствием между объявлением функции и функциональным определением.
Используйте сопоставимые определения типа. Например:
Удалите пользовательские определения типа для этих фундаментальных типов. Только используйте системные определения.
Используйте тот же размер для всех единиц компиляции. Переместите свой typedef
к разделяемому заголовочному файлу.
Группа: Программирование |
Язык: C | C++ |
Значение по умолчанию: On |
Синтаксис командной строки: TYPEDEF_MISMATCH |
Удар: высоко |