exponenta event banner

CERT C: Rec. MSC04-C

Последовательное и удобочитаемое использование комментариев

Описание

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

Используйте комментарии последовательно и в удобочитаемом виде. [1 ]

Внедрение Polyspace

Эта проверка проверяет использование/* и//внутри комментария.

Примеры

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

Проблема

Проблема возникает при использовании последовательностей символов /* и // внутри комментария.

Нельзя аннотировать это правило в исходном коде. Сведения об аннотациях см. в разделах Аннотировать код и Скрыть известные или приемлемые результаты.

Риск

Эти последовательности символов не допускаются в комментариях кода по следующей причине:

  • Если код содержит /* или // в /* */ comment, обычно это означает, что вы случайно прокомментировали код.

  • Если код содержит /* в // комментарий, обычно это означает, что вы случайно не прокомментировали /* */ комментарий.

Пример - /* Используется в // Комментарии
int x;
int y;
int z;

void non_compliant_comments ( void )
{
    x = y //  	/* Non-compliant
        + z
        //  */
        ;
    z++;	//	Compliant with exception: // permitted within a // comment
}

void compliant_comments ( void )
{
    x = y /*  	Compliant
      + z
	  */
        ;
    z++;	//	Compliant with exception: // is permitted within a // comment
}

В этом примере в non_compliant_comments функция, /* происходит в том, что кажется // комментарий, нарушение правила. Из-за структуры комментария выполняемая операция x = y + z;. Однако без двух //-s, совершенно другая операция x=y; имеет место. Неясно, какая операция предназначена.

Используйте формат комментария, который прояснит ваше намерение. Например, в compliant_comments функция, ясно, что операция x=y; предназначен.

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

Группа: Rec. 48. Разное (MSC)
Представлен в R2019a

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

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

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