Не сочетайтесь между typedef операторы
Этот дефект происходит когда 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 |
| Удар: высоко |