Операнд правой руки логического оператора & & или оператора | | не должен содержать постоянных побочных эффектов
Операнд правой руки логического оператора & & или оператора | | не должен содержать постоянных побочных эффектов.
Правильный операнд || оператор не вычисляется, если левый операнд имеет значение true. Правильный операнд && оператор не вычисляется, если левый операнд имеет значение false. В этих случаях, если правый операнд изменяет значение переменной, изменение не происходит. После выполнения операции, если ожидается изменение значения переменной, изменение может произойти не всегда.
Для этого правила Polyspace ® считает, что вызов функции не имеет постоянного побочного эффекта, если тело функции не присутствует в том же файле, что и вызов функции.
Если вызов чистой функции отмечен, прежде чем игнорировать это нарушение правила, убедитесь, что функция не имеет побочных эффектов. Например, функции с плавающей запятой, такие как abs() кажется, только возвращает значение и не имеет никакого другого побочного эффекта. Однако эти функции используют стек регистров FPU и могут иметь побочные эффекты в определенных архитектурах, например, в некоторых архитектурах Intel ®.
Если правильный операнд является изменчивой переменной, Polyspace не помечает это как нарушение правила.
Операнд правой руки оператора & & не должен содержать побочных эффектов. Операнд правой руки оператора | | не должен содержать побочных эффектов.
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Побочные эффекты |
| Категория: Обязательно |
| Категория СМЖЛ: требуется |