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

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

Описание

Это средство проверки деактивировано в Polyspace по умолчанию® как Вы Анализ кода . Смотрите Средства проверки, Деактивированные в Polyspace, когда Вы Кодируете Анализ По умолчанию.

Управляйте определением

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

Объяснение

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

Реализация Polyspace

Флаги средства проверки правила переопределили функции только, когда существует объявление.

Средство проверки не повышено на неиспользованном коде такой как

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

  • Невостребованный static или extern функции

  • Невостребованные и неопределенные локальные функции

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

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

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

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

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

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

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

Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.

Примеры

развернуть все

namespace NS1 {
    static int WIDTH;
}

namespace NS2 {
    float WIDTH; //Noncompliant
}

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

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

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