﻿# V2587\. MISRA\. The '//' and '/\*' character sequences should not appear within comments\.

Диагностическое правило основано на руководстве [MISRA](https://www.misra.org.uk/) \(Motor Industry Software Reliability Association\) по разработке программного обеспечения\.

Внутри комментариев не должна присутствовать последовательность символов, которая обозначает начало комментария\. Такое возможно, если блок комментариев не был закрыт последовательностью '\*/' либо блок кода был закомментирован построчно через '//'\.

Рассмотрим первый пример:

```cpp
/* this comment is not closed
some_critical_function();
/* We're still inside the comment */
```

Здесь первый блок комментариев не закрыт, и второй блок комментариев оказывается внутри первого\. Такой код может привести к тому, что некоторые строки с критичным для выполнения кодом могут оказаться случайно закомментированными\.

Подобная проблема может происходить при использовании однострочных комментариев\. Рассмотрим второй пример:

```cpp
int some_function(int x, int y)
{
    return x // /*
               + y
             // */
            ;
}
```

Однострочный комментарий подавляет многострочный, и из\-за этого итоговое выражение будет таким:

```cpp
return x + y;
```

вместо:

```cpp
int x = y;
```

Анализатор не выдает срабатывание, если последовательность '//' встречается внутри однострочного комментария:

```cpp
....
// some_unecessary_call_1(); // probably, should not do this
// some_unecessary_call_2(); // probably, should not do this too
....
```

Такой код мог получиться путем комментирования некоторого блока кода однострочными комментариями, и при этом блок кода ранее уже их содержал в конце строк\.