Аргументы указателя на функцию Standard Library memcmp
должен указывать либо на тип указателя, по существу на тип со знаком, по существу беззнаковый тип, по существу на логический тип или по существу на тип перечисления
Аргументы указателя на функцию Standard Library memcmp
должен указывать либо на тип указателя, по существу на тип со знаком, по существу беззнаковый тип, по существу на логический тип или по существу на тип перечисления.
Это правило получено от MISRA C®: 2012 1 о внесении изменений.
Функция «Стандартная библиотека»
memcmp ( lhs, rhs, num );
num
байты двух объектов, которые lhs
и rhs
указать на.Не используйте memcmp
для сравнения байт/байт следующего.
Напечатать | Объяснение |
---|---|
Структуры | Если представители структуры имеют различные типы данных, ваш компилятор вводит дополнительное заполнение для выравнивания данных в памяти. Содержимое этих дополнительных байтов заполнения бессмысленно. Если вы выполняете байтовое сравнение структур с memcmp , вы сравниваете даже бессмысленные данные, хранящиеся в заполнении. Вы можете прийти к ложному выводу, что две структуры данных не равны, даже если их соответствующие представители имеют одинаковое значение. |
Объекты с плавающим типом | Одно и то же значение с плавающей точкой может храниться с помощью различных представлений. Если вы выполняете байтовое сравнение двух переменных с memcmp можно прийти к ложному выводу, что переменные неравны, даже когда они имеют одно и то же значение. Причина в том, что значения хранятся с помощью двух различных представлений. |
По сути, char arrays | По существу, массивы char обычно используются для хранения строк. В строках содержимое в байтах после null terminator бессмысленно. Если вы выполняете байтовое сравнение двух строк с memcmp , вы можете прийти к ложному выводу, что две строки не равны, даже если байты перед null terminator сохраняют одно и то же значение. |
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
Группа: Стандартные библиотеки |
Категория: Требуемая |
Категория AGC: Требуется |