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