exponenta event banner

Правило AUTOSAR C++ 14 A3-3-1

Объекты или функции с внешней связью (включая элементы именованных пространств имен) должны быть объявлены в файле заголовка

Описание

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

Объекты или функции с внешней связью (включая элементы именованных пространств имен) должны быть объявлены в файле заголовка.

Объяснение

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

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

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

Примеры

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

В этом примере используются два файла:

  • decls.h:

    extern int x;
  • file.cpp:

    #include "decls.h"
    
    int x = 0;
    int y = 0; //Noncompliant
    static int z = 0;

В этом примере переменная x объявлен в файле заголовка, но переменная y не имеет. Переменная z также не объявляется в файле заголовка, но объявляется с помощью static спецификатор и не имеет внешней связи.

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

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