Значение выражения не должно быть приведено к неподходящему существенному типу
Значение выражения не должно быть приведено к неподходящему существенному типу.
Преобразование между типами переменных
От | |||||||
Булев | символ | enum | подписанный | неподписанный | плавание | ||
Кому | Булев | Избежать | Избежать | Избежать | Избежать | Избежать | |
символ | Избежать | Избежать | |||||
enum | Избежать | Избежать | Избежать | Избежать | Избежать | Избежать | |
подписанный | Избежать | ||||||
неподписанный | Избежать | ||||||
плавание | Избежать | Избежать |
Некоторые неуместные явные отливки:
В C99, результат приведения назначения к _Bool
всегда 0 или 1. Этот результат не обязательно является случаем при приведении к другому типу, который определяется как по существу логический.
Приведение к существенному типу перечисления может привести к значению, которое не находится в наборе констант перечисления для этого типа.
Приведение от существенного логического к любому другому типу вряд ли будет значимым.
Преобразование между плавающими и символьными типами не имеет значения, так как нет точного отображения между этими двумя представлениями.
Некоторые приемлемые явные отливки:
Чтобы изменить тип, в котором выполняется последующая арифметическая операция.
Чтобы обрезать значение преднамеренно.
Сделать преобразование типа явным в интересах ясности.
Для получения дополнительной информации о важных типах смотрите MISRA C:2012 Rule 10.1
.
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
Группа: Модель Essential Type |
Категория: Консультационные |
Категория СМЖЛ: Консультационная |