Имя идентификатора функции со статической длительностью хранения или объекта, не являющегося членом, с внешней или внутренней связью не должно использоваться повторно
Имя идентификатора функции со статической длительностью хранения или объекта, не являющегося членом, с внешней или внутренней связью не должно использоваться повторно.
Объекты со статической длительностью хранения остаются доступными в течение всего выполнения программы. К ним относятся:
Объекты, не являющиеся членами проекта, с внешней связью, на которые можно ссылаться из любой единицы перевода проекта.
Объекты, объявленные с помощью static спецификатор класса. Эти объекты имеют внутреннюю связь и могут упоминаться из любого объема в пределах их единицы перевода.
При повторном использовании имени идентификатора один идентификатор может быть ошибочным для другого.
Правило не применяется к объектам без связи, например, к локальным статическим объектам функций, поскольку идентификаторы этих объектов не могут быть использованы вне их области действия.
При повторном использовании идентификаторов Polyspace ® помечает последнее использование идентификатора, если они находятся в одной и той же единице преобразования. Если идентификаторы находятся в отдельных файлах, то идентификатор в последнем пути к файлу помечается в алфавитном порядке.
При объявлении функции в пространстве имен с помощью static спецификатор класса и повторно использовать идентификатор функции для объявления нестатической функции в другом пространстве имен, Polyspace помечает идентификатор статической функции. Например, в этом фрагменте кода идентификатор func повторно используется в пространстве имен NS_2 но он помечен в пространстве имен NS_1.
namespace NS_1 {
static void func(void); // Polyspace flags this use of "func".
};
namespace NS_2 {
void func(void); //"func" identifier reused but this is not a static function.
}
При повторном использовании идентификатора локальной переменной Polyspace помечает идентификатор глобальной переменной.
Polyspace не помечает повторное использование идентификатора для глобальных функций и их аргументов, объявленных без static спецификатор класса.
Средство проверки не создается для неиспользуемого кода, например
Неподтвержденные шаблоны
Неуместный static или extern функции
Неустановленные и неопределенные локальные функции
Неиспользуемые типы и переменные
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Лексические конвенции |
| Категория: Консультации, Автоматизированные |