﻿# V2602\. MISRA\. Octal and hexadecimal escape sequences should be terminated\.

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

Последовательности восьмеричных и шестнадцатеричных чисел внутри строковых и символьных литералов должны быть завершёнными\. Это поможет избежать ошибок с определением позиции завершения escape\-последовательности\.

Рассмотрим пример:

```cpp
const char *str = "\x0exit";
```

Строковый литерал в данном примере имеет длину в 4 символа, а не 5, как может показаться на первый взгляд\. Последовательность '\\x0e' считается за один символ с кодом 0xE, а не символ с нулевым кодом и букву 'e'\.

Поэтому escape\-последовательность должна быть завершена одним из двух способов:

* завершением строкового литерала;
* началом новой escape\-последовательности\.

Следующие 2 примера представляют собой правильный вариант завершения escape\-последовательности:

```cpp
const char *str1 = "\x0" "exit";
const char *str2 = "\x1f\x2f";
```