Отступление оператора неправильно делает его появляющимся как часть блока
Этот дефект возникает, когда отступление оператора делает его частью if
, else
или другой блок, но расположение или отсутствие скобок фактически сохраняет оператор вне блока.
Разработчик или рецензент могут неправильно связать оператор с блоком на основе его отступа, что приводит к неправильному предположению о логике программы.
Например, в этом примере:
if(credentialsOK()) login=1; setCookies();
setCookies();
не является частью if
блок, но отступление предполагает обратное.Если требуется, чтобы оператор был частью блока, убедитесь, что оператор находится внутри скобок, связанных с блоком. Чтобы определить степень блока, на панели Source щелкните скобку открытия.
Если задан if
, else
или while
оператор не имеет скобок после условия, частью if
считается только следующая линия на пути выполнения до точки с запятой,
else
или while
блок. Если необходимо включить в блок последующие линии, оберните их скобками.
Например, в предыдущем примере, чтобы включить обе операторы в if
блокируйте, используйте:
if(credentialsOK()) { login=1; setCookies(); }
Группа: Хорошая практика |
Язык: C | C++ |
По умолчанию: Off |
Синтаксис командной строки
: INCORRECT_INDENTATION |
Влияние: Низкое |
Find defects (-checkers)
| Line with more than one statement
| Semicolon on same line as if, for or while statement