Внешний объект или функция должны быть объявлены однажды в одном и только одном файле
Это средство проверки деактивировано в Polyspace по умолчанию® как Вы Анализ кода. Смотрите Средства проверки, Деактивированные в Polyspace, когда Вы Кодируете Анализ По умолчанию.
Примечание
Используйте Bug Finder вместо Code Prover для проверки правил кодирования. Поддержка кодирования правил, регистрируясь в Code Prover будет удалена в будущем релизе. См. Вопросы совместимости.
Внешний объект или функция должны быть объявлены однажды в одном и только одном файле.
Если вы объявляете идентификатор в заголовочном файле, можно включать заголовочный файл в любой модуль перевода, где идентификатор задается или используется. Таким образом вы гарантируете непротиворечивость между:
Объявление и определение.
Объявления в различных модулях перевода.
Правило осуществляет практику объявления внешних объектов или функций в заголовочных файлах.
Средство проверки правила проверяет только явный extern объявления (предварительные определения проигнорированы). Средство проверки отмечает переменные или функции:
Заявленный extern в незаголовочном файле
Объявленный многократно, например, однажды в заголовке и однажды в незаголовочном файле.
Средство проверки игнорирует специфичные для компилятора непортативные способы заменить объявления функции, такие как pragma weak или __attribute__((weak)). Если вы объявляете слабый символ в своем коде и затем повторно объявляете символ позже, средство проверки считает redeclaration, как правило, нарушением. Если вы не хотите устранять проблему, добавьте комментарий в свой результат или код, чтобы избежать другого анализа. См.:
Обратитесь к Результатам Polyspace Через Исправления ошибок или Выравнивания, если вы рассматриваете результаты в пользовательском интерфейсе Polyspace.
Обратитесь к Результатам в Polyspace доступ Через Исправления ошибок или Выравнивания, если вы рассматриваете результаты в веб-браузере.
Polyspace Bug Finder™ и Polyspace Code Prover™ проверяют это правило кодирования по-другому. Исследования могут привести к различным результатам.
Объектный object_name имеет внешние объявления в нескольких файлах.
Функциональный function_name имеет внешние объявления в нескольких файлах.
Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.
| Группа: объявления и определения |
| Категория: необходимый |
| Категория AGC: консультация |