MISRA C++:2008 Rule 5-14-1

Правый операнд логического && или || оператор не должен содержать побочные эффекты

Описание

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

Правый операнд логического && или || оператор не должен содержать побочные эффекты.

Объяснение

Когда оценено, выражение с побочным эффектом изменяет по крайней мере одну из переменных в выражении. Например, n++ выражение с побочным эффектом.

Правый операнд a:

  • Логический оператор оценен, только если левый операнд оценивает к истине.

  • Логический || оператор оценен, только если левый операнд оценивает ко лжи.

В других случаях не оценены правые операнды, таким образом, побочные эффекты выражения не происходят. Если ваша программа использует побочные эффекты, вы можете видеть неожиданные результаты в тех случаях.

Реализация Polyspace

Средство проверки отмечает логический && или || операторы, правые операнды которых являются выражениями с побочными эффектами.

Средство проверки не рассматривает энергозависимых доступов и вызовов функции как потенциальные побочные эффекты.

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

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

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

Группа: Выражения
Категория: необходимый
Введенный в R2013b