Статический спецификатор класса памяти должен использоваться во всех объявлениях объектов и функций, которые имеют внутреннюю связь
Статический спецификатор класса памяти должен использоваться во всех объявлениях объектов и функций, которые имеют внутреннюю связь.
Если вы последовательно не используете спецификатор static
во всех объявлениях объектов с внутренней связью, вы можете объявить тот же объект с внешней и внутренней связью.
В этой ситуации связь следует за более ранней спецификацией, которая видима (Стандарт C99, Раздел 6.2.2). Например, если более ранняя спецификация указывает на внутреннюю связь, объект имеет внутреннюю связь даже при том, что последняя спецификация указывает на внешнюю связь. Если вы заметите одну только последнюю спецификацию, вы можете ожидать в противном случае.
Средство проверки правила обнаруживает ситуации где:
Тот же объект объявляется многократно с различными спецификаторами устройства хранения данных.
Та же функция объявлена и задана с различными спецификаторами устройства хранения данных.
Статический спецификатор класса памяти должен использоваться во всех объявлениях объектов и функций, которые имеют внутреннюю связь.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: объявления и определения |
Категория: необходимый |
Категория AGC: необходимый |
Язык: C90, C99 |