Несоответствие между typedef операторы
Эта проверка деактивирована в Polyspace по умолчанию® по мере анализа You Code. Смотрите Checkers Deactivated in Polyspace как You Code Default Analysis (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 |
| Влияние: Высокий |