Количество локальных статических переменных в функции больше заданного порога
Этот дефект возникает на функции, когда количество локальных статических переменных в функции больше заданного порога проверки. Для получения дополнительной информации о том, как Polyspace вычисляет количество локальных статических переменных в функции, см. Number of Local Static Variables
.
Polyspace® использует порог по умолчанию 20, если вы не задаете порог. Чтобы задать файл выбора, в котором можно задать порог, используйте Set checkers by file (-checkers-selection-file)
. Также см. «Уменьшение сложности программного обеспечения при помощи Polyspace Checkers».
Когда вы импортируете комментарии из предыдущих анализов при помощи polyspace-comments-import
Polyspace копирует любую рецензирующую информацию о метрике кода Number of Local Static Variables
в предыдущем результате этой проверки в текущем результате. Если текущий результат содержит ту же метрику кода, информация проверки также копируется в метрику кода.
На содержимое статической переменной может влиять много различных способов. Когда ваша функция имеет слишком много статических переменных, это указывает, что данные в вашем коде неправильно инкапсулированы, и ваши функции могут иметь неожиданные взаимозависимости. Эти факторы затрудняют тестирование и обслуживание вашего кода и могут ввести ошибки, которые трудно диагностировать.
Чтобы исправить эту проверку, либо измените код, либо измените порог проверки. При рефакторизации кода:
Инкапсулируйте и модулируйте независимые данные или код.
Общайтесь между функциями с помощью локальных переменных вместо глобальных или статических переменных.
Лучшая практика состоит в том, чтобы проверить сложность модуля на ранних стадиях разработки, чтобы избежать дорогостоящего рефакторинга после разработки.
Группа: Комплексность программного обеспечения |
Язык: C | C++ |
Акроним:
SC09
|
Порог по умолчанию: 20 |