﻿# V2501\. MISRA\. Octal constants should not be used\.

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

Данное диагностическое правило различается для C и C\+\+\. В C восьмеричные числовые литералы не должны использоваться\. В C\+\+ помимо восьмеричных числовых литералов не должны использоваться экранирующие последовательности\.

Использование восьмеричных литералов может затруднить восприятие кода, особенно при быстром просмотре\. Неправильная интерпретация фактического числового значения может приводить к разнообразным ошибкам\.

Пример кода, на который анализатор выдаст предупреждение:

```cpp
if (val < 010)
{
  ....
}
```

При быстром просмотре кода можно упустить из виду, что значение числового литерала – 8, а не 10\. Чтобы анализатор не выдавал предупреждения, литерал стоит переписать в десятичной или шестнадцатеричной форме:

```cpp
if (val < 8)
{
  ....
}
```