主要内容

CERT C:Rec.PRE07-C

Avoid using repeated question marks

描述

规则定义

Avoid using repeated question marks.1

Polyspace 实现

规则检查项会检查三字符序列的使用

示例

全部展开

问题

当您在代码中使用三字符序列时,会出现此问题。

Polyspace® 分析会将三字符序列转换为等效字符,以用于缺陷分析。然而,Polyspace 也会引发 MISRA™ 违规。

标准要求在预处理期间,必须在删除注释之前转换三字符序列。因此,即使三字符序列出现在代码注释中,Polyspace 也会报告违反此规则。

风险

可以用两个问号后跟一个特定的第三个字符来表示三字符序列(例如,'??-' 表示一个 '~'(波浪号)字符,'??)' 表示一个 ']' 字符)。这些三字符序列可能会与两个问号的其他用法意外混淆。

注意

双字符序列(<: :><% %>%:%:%:)是允许使用的,因为它们是标记。

检查信息

组:Rec.01.预处理器 (PRE)

版本历史记录

在 R2019a 中推出


1 This software has been created by MathWorks incorporating portions of: the “SEI CERT-C Website,” © 2017 Carnegie Mellon University, the SEI CERT-C++ Web site © 2017 Carnegie Mellon University, ”SEI CERT C Coding Standard – Rules for Developing safe, Reliable and Secure systems – 2016 Edition,” © 2016 Carnegie Mellon University, and “SEI CERT C++ Coding Standard – Rules for Developing safe, Reliable and Secure systems in C++ – 2016 Edition” © 2016 Carnegie Mellon University, with special permission from its Software Engineering Institute.

ANY MATERIAL OF CARNEGIE MELLON UNIVERSITY AND/OR ITS SOFTWARE ENGINEERING INSTITUTE CONTAINED HEREIN IS FURNISHED ON AN "AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.

This software and associated documentation has not been reviewed nor is it endorsed by Carnegie Mellon University or its Software Engineering Institute.