Переменная скрывает другую переменную с тем же именем с вложенной областью
Этот дефект возникает, когда переменная скрывает другую переменную с тем же именем во внешней области.
Например, если локальная переменная имеет то же имя, что и глобальная переменная, то локальная переменная скрывает глобальную переменную в течение срока ее действия.
Если во внутренней и внешней областях существуют две переменные с одинаковым именем, любая ссылка на имя переменной использует переменную во внутренней области. Однако разработчик или рецензент может неправильно ожидать, что переменная во внешней области была использована.
Исправление зависит от первопричины дефекта. Например, предположим, что выполняется рефакторинг функции таким образом, что вместо глобальной переменной используется локальная статическая переменная. В этом случае глобальная переменная является избыточной, и ее объявление можно удалить. Кроме того, если вы не уверены, используется ли глобальная переменная в другом месте, можно изменить имя локальной статической переменной и все ссылки в функции.
Если затенение предназначено и вы не хотите устранять проблему, добавьте комментарии к результату или коду, чтобы избежать другой проверки. См. раздел Результаты анализа пространства адресов с помощью исправлений ошибок или обоснований.
| Группа: Поток данных |
| Язык: C | C++ |
| По умолчанию: Вкл для рукописного кода, выкл для сгенерированного кода |
Синтаксис командной строки: VAR_SHADOWING |
| Воздействие: Низкий |