Аргументы указателя на функцию 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: Требуется |