MISRA C:2012 Rule 10.3

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

Описание

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

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

Объяснение

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

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

Реализация Polyspace

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

Шашка не поднимает нарушения этого правила:

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

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

    unsigned int u = 1;

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

  • Выражение присваивается объекту с другой категорией основных типов.

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

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

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

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

Группа: Модель Essential Type
Категория: Требуемая
Категория СМЖЛ: Консультационная