exponenta event banner

Правило AUTOSAR C++ 14 M3-3-2

Если функция имеет внутреннюю связь, то все повторные объявления должны включать спецификатор статического класса хранения

Описание

Определение правила

Если функция имеет внутреннюю связь, то все повторные объявления должны включать спецификатор статического класса хранения.

Объяснение

Если объявление функции имеет static спецификатор класса хранения, он имеет внутреннюю связь. Последующие редекларации функции имеют внутреннюю связь даже без static спецификатор.

Однако, если не указать static ключевое слово явно, из объявления не сразу ясно, имеет ли функция внутреннюю связь.

Поиск неисправностей

Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.

Примеры

развернуть все

static void func1 ();
static void func2 ();

void func1() {}  //Noncompliant
static void func2() {}

В этом примере функция func1 объявлен static но определено без static спецификатор.

Проверить информацию

Группа: Основные понятия
Категория: Обязательно, Автоматизировано
Представлен в R2019a