Значение выражения не должно быть присвоено объекту с более узким существенным типом или различной существенной категории типа
Значение выражения не должно быть присвоено объекту с более узким существенным типом или различной существенной категории типа.
Использование неявных преобразований между типами может привести к непреднамеренным результатам, включая возможную потерю значения, знака или точности.
Для получения дополнительной информации о существенных типах смотрите MISRA C:2012 Rule 10.1
.
Средство проверки повышает нарушение, если выражение присвоено переменной с более узким существенным типом или различной существенной категорией типа.
Средство проверки не повышает нарушение этого правила:
Если объект присвоен постоянный нуль, соответствующий его существенному типу. Этим приемлемым нулевым значением является 0
для целочисленных типов, 0.0
для double
, и '\0'
для char
.
Если макросы TRUE
TRUE
и FALSE
ложь
с соответствующим булевым значением присвоен bool
переменная.
Если константа со знаком присвоена переменной без знака, но константа со знаком имеет то же представление как свой эквивалент без знака. Например, средство проверки не отмечает операторы, такие как:
unsigned int u = 1;
Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.
Группа: существенная модель типа |
Категория: необходимый |
Категория AGC: консультация |