V652. The operation is executed 3 or more times in succession.


Анализатор обнаружил потенциальную ошибку, связанную с тем, что одна из операций '!', '~', '-' или '+' повторяется три или более раз. Такая ошибка может произойти в случае опечатки. Такое дублирование операторов бессмысленно и может содержать ошибку.

Рассмотрим пример некорректного кода:

if(B &&
   C && !!!
   D) { .... }

Скорее всего, такая ошибка возникла вследствие опечатки. Например, были пропущены символы комментария или напечатан лишний символ операции.

Корректный вариант кода:

if (B &&
    C && //!!!
    D) { .... }

Так же корректным будет следующий вариант кода:

if (B &&
    C && !!D) { .... }

Такой приём часто используется для приведения целочисленных типов данных к типу 'bool'.

Взгляните на примеры ошибок, обнаруженных с помощью диагностики V652.


Найденные ошибки

Проверено проектов
355
Собрано ошибок
13 303

А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++, C#
и Java

goto PVS-Studio;