MISRA C:2012 Rule 10.3

Значение выражения не должно быть присвоено объекту с более узким существенным типом или различной существенной категории типа

Описание

Управляйте определением

Значение выражения не должно быть присвоено объекту с более узким существенным типом или различной существенной категории типа.

Объяснение

Использование неявных преобразований между типами может привести к непреднамеренным результатам, включая возможную потерю значения, знака или точности.

Для получения дополнительной информации о существенных типах смотрите MISRA C:2012 Rule 10.1.

Реализация Polyspace

Средство проверки повышает нарушение, если выражение присвоено переменной с более узким существенным типом или различной существенной категорией типа.

Средство проверки не повышает нарушение этого правила:

  • Если выражение является просто постоянным нулем.

  • Если константа со знаком присвоена переменной без знака, но константа со знаком имеет то же представление как свой эквивалент без знака. Например, средство проверки не отмечает операторы, такие как:

    unsigned int u = 1;

Дополнительное сообщение в отчете

  • Выражение присвоено объекту с различной существенной категорией типа.

  • Выражение присвоено объекту с более узким существенным типом.

Поиск и устранение проблем

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

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

Группа: существенная модель типа
Категория: необходимый
Категория AGC: консультация