MISRA C:2012 Rule 3.1

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

Описание

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

Последовательности символов /* и // не должны использоваться в рамках комментария.

Объяснение

Эти последовательности символов не разрешены в комментариях кода, потому что:

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

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

Реализация Polyspace

Вы не можете аннотировать это правило в исходном коде.

Для получения информации об аннотациях см. «Аннотации кода» и «Скрыть известные или приемлемые результаты».

Дополнительное сообщение в отчете

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

Поиск и устранение проблем

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

Примеры

расширить все

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 function, the /* символ возникает в том, что кажется // комментарий, нарушение правила. Из-за структуры комментария выполняемая операция x = y + z;. Однако без двух //-s, совершенно другая операция x=y; происходит. Непонятно какая операция предназначена.

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

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

Группа: Комментарии
Категория: Требуемая
Категория AGC: Требуется
Введенный в R2014b