exponenta event banner

MISRA C:2012 Правило 10.5

Значение выражения не должно относиться к неподходящему существенному типу

Описание

Определение правила

Значение выражения не должно относиться к неподходящему существенному типу.

Объяснение

Преобразование между типами переменных

 От
Булевхарактерenumподписанныйнеподписанныйплавание
КомуБулев ИзбежатьИзбежатьИзбежатьИзбежатьИзбежать
характерИзбежать    Избежать
enumИзбежатьИзбежатьИзбежатьИзбежатьИзбежатьИзбежать
подписанныйИзбежать     
неподписанныйИзбежать     
плаваниеИзбежатьИзбежать    

Некоторые неуместные явные слепки:

  • В C99, результат подбора _Bool всегда равно 0 или 1. Этот результат не обязательно имеет место при отливке в другой тип, который определяется как по существу логический.

  • Приведение к существенному типу перечисления может привести к значению, которое не лежит в наборе констант перечисления для этого типа.

  • Отливка от основного логического к любому другому типу вряд ли будет значимой.

  • Преобразование между плавающим и символьным типами не имеет смысла, поскольку между двумя представлениями нет точного сопоставления.

Некоторые приемлемые явные слепки:

  • Изменение типа, в котором выполняется последующая арифметическая операция.

  • Намеренно усекать значение.

  • Сделать преобразование типа явным в интересах ясности.

Дополнительные сведения об основных типах см. в разделе MISRA C:2012 Rule 10.1.

Поиск неисправностей

Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.

Проверить информацию

Группа: Модель основного типа
Категория: Консультационные услуги
СМЖЛ Категория: Консультативные услуги