exponenta event banner

MISRA C++: 2008 Правило 2-10-5

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

Описание

Эта проверка деактивируется в анализе Polyspace ® по умолчанию в качестве кода. См. раздел Шашки, деактивированные в Polyspace как анализ кода по умолчанию (Polyspace Bug Finder Access).

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

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

Объяснение

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

Внедрение Polyspace

Средство проверки правил помечает переопределенные функции только при наличии объявления.

Средство проверки не создается для неиспользуемого кода, например

  • Неподтвержденные шаблоны

  • Неуместный static или extern функции

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

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

Средство поиска ошибок и средство проверки кода проверяют это правило кодирования по-разному. Анализ может дать различные результаты.

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

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

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

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

Поиск неисправностей

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

Примеры

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

namespace NS1 {
    static int WIDTH;
}

namespace NS2 {
    float WIDTH; //Noncompliant
}

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

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

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