Не сочетайтесь между операторами 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 |
Влияние: высоко |