Имя идентификатора функции со статической продолжительностью хранения или объекта лица, не являющегося членом какой-либо организации, с внешним или внутренним рычажным устройством не должно быть снова использовано
Имя идентификатора функции со статической продолжительностью хранения или объекта лица, не являющегося членом какой-либо организации, с внешним или внутренним рычажным устройством не должно быть снова использовано.
Объекты со статической продолжительностью хранения остаются доступными во время целого осуществления программы. Они включают:
Лицо, не являющееся членом какой-либо организации, возражает с внешним рычажным устройством, которое может быть упомянуто от любого из модулей перевода вашего проекта.
Объекты объявляются с 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
функции
Невостребованные и неопределенные локальные функции
Неиспользованные типы и переменные
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: Лексические соглашения |
Категория: консультация, автоматизированная |