Не сочетайтесь между 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++ |
Значение по умолчанию: на |
Синтаксис командной строки: TYPEDEF_MISMATCH |
Удар: высоко |