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