Функции и объекты не должны быть заданы с внешним рычажным устройством, если на них ссылаются только в одном модуле перевода
Функции и объекты не должны быть заданы с внешним рычажным устройством, если на них ссылаются только в одном модуле перевода.
Податливость с этим правилом избегает беспорядка между вашим идентификатором и идентичным идентификатором в другом модуле перевода или библиотеке. Если вы ограничиваете или уменьшаете видимость объекта путем предоставления ему внутреннего рычажного устройства или никакого рычажного устройства, вас, или кто-то еще, менее вероятно, получит доступ к объекту непреднамеренно.
Флаги средства проверки правила:
Объекты, которые заданы в осциллографе файла без static
спецификатор, но используемый только в одном файле.
Функции, которые заданы без static
спецификатор, но названный только в одном файле.
Если вы намереваетесь использовать объект или функцию в одном файле только, объявите его статический.
Если ваш код не содержит main
функционируйте и вы используете опции, такие как Variables to initialize (-main-generator-writes-variables)
со значением custom
чтобы явным образом задать набор переменных, чтобы инициализировать, средство проверки не отмечает те переменные. Средство проверки принимает это в действительном приложении, файл, содержащий main
должен инициализировать переменные в дополнение к любому файлу, который в настоящее время использует их. Поэтому переменные используются больше чем в одном модуле перевода.
Polyspace® Bug Finder™ и Polyspace Code Prover™ проверяют это правило кодирования по-другому. Исследования могут привести к различным результатам.
Переменный variable_name
должен иметь внутреннее рычажное устройство.
Функциональный function_name
должен иметь внутреннее рычажное устройство.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: объявления и определения |
Категория: консультация |
Категория AGC: консультация |