exponenta event banner

Правило AUTOSAR C++ 14 A16-7-1

Директива # pragma не должна использоваться

Описание

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

Директива # pragma не должна использоваться.

Объяснение

Использование #pragma директива в коде приводит к поведению, определяемому реализацией. Директива также может не поддерживаться определенными компиляторами.

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

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

Примеры

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

//header.h
#pragma once //Noncompliant

#ifndef HEADER_H_ //Compliant
#define HEADER_H_
// ...
// body of header file
//..
#endif

#pragma once директива предотвращает включение header.h не раз. Однако при копировании header.h в нескольких модулях проекта директива может рассматривать копии как один и тот же файл в зависимости от реализации. Чтобы избежать двойных определений, используйте #ifndef вместо этого включить охрану.

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

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