﻿# V2554\. MISRA\. Expression containing increment \(\+\+\) or decrement \(\-\-\) should not have other side effects\.

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

Не рекомендуется использование декремента \(\-\-\) или инкремента \(\+\+\) в одном выражении с другими операторами\. Использование этих операторов в выражении, содержащем сторонние побочные эффекты приводит к ухудшению читаемости кода, а также может привести к возникновению неопределенного поведения \(undefined behaviour\)\. Безопасным подходом будет использование рассматриваемых операторов в отдельных выражениях\.

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

```cpp
i = ++i + i--;
```

Здесь происходит попытка изменить одну переменную в пределах одной точки следования\. Это приводит к неопределенному поведению \(undefined behaviour\)\.