MISRA C++:2008 Rule 2-10-5

Имя идентификатора объекта или функции, не являющихся членами, со статической длительностью хранения не должно использоваться повторно

Описание

Эта проверка деактивирована в Polyspace по умолчанию® по мере анализа You Code. Смотрите Checkers Deactivated in Polyspace как You Code Default Analysis (Polyspace Bug Finder Access).

Определение правила

Имя идентификатора объекта или функции, не являющихся членами, со статической длительностью хранения не должно использоваться повторно.

Объяснение

Правило помечает ситуации, когда имя идентификатора со статической длительностью хранения используется повторно. Правило применяется, даже если идентификаторы принадлежат различным пространствам имен, потому что повторное использование оставляет шанс, что вы ошибаете один идентификатор для другого.

Реализация Polyspace

Флажки проверки правил переопределяют функции только при наличии объявления.

Шашка не поднята на неиспользованном коде, таком как

  • Неинстантированные шаблоны

  • Незакрытые static или extern функции

  • Незавершенные и неопределенные локальные функции

  • Неиспользованные типы и переменные

Bug Finder и Code Prover по-разному проверяют это правило кодирования. Анализы могут привести к различным результатам.

Дополнительное сообщение в отчете

Имя идентификатора объекта или функции, не являющихся членами, со статической длительностью хранения не должно использоваться повторно.

Идентификатор name не следует повторно использовать.

Уже используется в качестве статического идентификатора со статической длительностью хранения (fileName lineNumber).

Поиск и устранение проблем

Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».

Примеры

расширить все

namespace NS1 {
    static int WIDTH;
}

namespace NS2 {
    float WIDTH; //Noncompliant
}

В этом примере имя идентификатора WIDTH повторно используется в двух пространствах имен NS1 и NS2.

Проверяйте информацию

Группа: Лексические конвенции
Категория: Консультационные
Введенный в R2013b