Значение выражения не должно быть брошено к несоответствующему существенному типу
Значение выражения не должно быть брошено к несоответствующему существенному типу.
Преобразование между типами переменных
| От | |||||||
| Булевская переменная | символ | перечисление | со знаком | без знака | плавание | ||
| К | Булевская переменная | Избежать | Избежать | Избежать | Избежать | Избежать | |
| символ | Избежать | Избежать | |||||
| перечисление | Избежать | Избежать | Избежать | Избежать | Избежать | Избежать | |
| со знаком | Избежать | ||||||
| без знака | Избежать | ||||||
| плавание | Избежать | Избежать | |||||
Некоторые несоответствующие явные броски:
В C99, результате броска присвоения на _Bool всегда 0 или 1. Этот результат не обязательно имеет место при кастинге к другому типу, который задан как по существу булевская переменная.
Бросок к существенному перечислимому типу может привести к значению, которое не лежит в наборе констант перечисления для того типа.
Бросок от существенной булевской переменной до любого другого типа вряд ли будет значим.
Преобразование между типами с плавающей точкой и типами символов не значимо, когда нет никакого точного отображения между этими двумя представлениями.
Некоторые приемлемые явные броски:
Изменить тип, в котором выполняется последующая арифметическая операция.
Обрезать значение сознательно.
Сделать преобразование типов явным в интересах ясности.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
| Группа: существенная модель типа |
| Категория: консультация |
| Категория AGC: консультация |