主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

AUTOSAR C++14 Rule A16-7-1

The #pragma directive shall not be used

描述

规则定义

The #pragma directive shall not be used.

理由

在代码中使用 #pragma 指令会导致实现定义的行为。某些编译器可能还不支持该指令。

故障排除

如果您预期会出现违规,而 Polyspace® 未报告该违规,请参阅诊断为何编码规范违规未按预期显示

示例

全部展开

//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 中推出