MISRA C ++:2008 правил 3-3-2

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

Описание

Управляйте определением

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

Объяснение

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

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

Обменивайтесь сообщениями в отчете

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

Поиск и устранение проблем

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

Примеры

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

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

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

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

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

Группа: фундаментальные понятия
Категория: необходимый

Введенный в R2013b