exponenta event banner

MISRA C++: 2008 Правило 5-14-1

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

Описание

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

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

Объяснение

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

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

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

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

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

Внедрение Polyspace

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

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

Поиск неисправностей

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

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

Группа: Выражения
Категория: Обязательно
Представлен в R2013b