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