exponenta event banner

CERT C: Rec. PRE07-C

Избегать использования повторяющихся вопросительных знаков

Описание

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

Избегайте использования повторяющихся вопросительных знаков. [1 ]

Внедрение Polyspace

Эта проверка проверяет использование триграфов.

Примеры

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

Проблема

Проблема возникает при использовании триграфов в коде.

Анализ Polyspace ® преобразует триграфы в эквивалентный символ для анализа дефектов. Однако Polyspace также поднимает вопрос о нарушении MISRA ®.

Стандарт требует преобразования триграфов перед удалением комментариев во время предварительной обработки. Поэтому Polyspace поднимает нарушение этого правила, даже если в комментариях кода появляется триграф.

Риск

Вы обозначаете триграфы двумя вопросительными знаками, за которыми следует определенный третий символ (например,'??-' представляет '~' (тильда) символ и '??)' представляет ']'). Эти триграфы могут вызвать случайную путаницу с другими видами использования двух вопросительных знаков.

Примечание

Диграфы (<: :>, <% %>, %:, %:%:) разрешены, так как они являются маркерами.

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

Группа: Rec. 01. Препроцессор (PRE)
Представлен в R2019a

[1] Данное программное обеспечение было создано компанией MathWorks и включает в себя следующие компоненты: «Веб-сайт SEI CERT-C», © 2017 Университет Карнеги-Меллон, веб-сайт SEI CERT-C + + © 2017 Университет Карнеги-Меллон, "Стандарт кодирования SEI CERT C - Правила разработки безопасных, Надежные и безопасные системы - 2016 Edition ", © 2016 Университет Карнеги-Меллон, и "Стандарт кодирования SEI CERT C++ - Правила разработки безопасных, Надежные и безопасные системы в C++ - 2016 Edition "© 2016 Университет Карнеги-Меллон, со специальным разрешением от его Института программного обеспечения.

ЛЮБОЙ МАТЕРИАЛ УНИВЕРСИТЕТА КАРНЕГИ МЕЛЛОНА И/ИЛИ ЕГО ПРОГРАММНОГО ИНЖЕНЕРНОГО ИНСТИТУТА, СОДЕРЖАЩИЙСЯ В НАСТОЯЩЕМ ДОКУМЕНТЕ, ПОСТАВЛЯЕТСЯ КАК ЕСТЬ. УНИВЕРСИТЕТ КАРНЕГИ МЕЛЛОН НЕ ДАЕТ НИКАКИХ ГАРАНТИЙ, ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, В ОТНОШЕНИИ ЛЮБЫХ ВОПРОСОВ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИИ ПРИГОДНОСТИ ДЛЯ ЦЕЛЕЙ ИЛИ ТОВАРНОЙ ПРИГОДНОСТИ, ИСКЛЮЧИТЕЛЬНОСТИ ИЛИ РЕЗУЛЬТАТОВ, ПОЛУЧЕННЫХ ОТ ИСПОЛЬЗОВАНИЯ УНИВЕРСИТЕТ КАРНЕГИ МЕЛЛОН НЕ ДАЕТ НИКАКИХ ГАРАНТИЙ В ОТНОШЕНИИ СВОБОДЫ ОТ ПАТЕНТА, ТОВАРНОГО ЗНАКА ИЛИ НАРУШЕНИЯ АВТОРСКИХ ПРАВ.

Данное программное обеспечение и связанная с ним документация не были рассмотрены и не одобрены Университетом Карнеги-Меллона или его Институтом разработки программного обеспечения.