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

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

Описание

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

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

Объяснение

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

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

  • Логический && оператор оценивается только в том случае, если операнд слева имеет значение true.

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

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

Реализация Polyspace

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

Шашка не рассматривает волатильные обращения и вызовы функций как потенциальные побочные эффекты.

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

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

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

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