Данное диагностическое правило основано на руководстве MISRA (Motor Industry Software Reliability Association) по разработке программного обеспечения.
Использование присвоения в подвыражениях привносит дополнительный побочный эффект, что уменьшает читаемость кода и повышает шанс внесения новой ошибки в код.
Более того, следование данному правилу значительно снижает вероятность путаницы между операторами '=' и '=='.
Пример кода, на который анализатор выдаст предупреждения:
int Inc(int i) { return i += 1; // <= } void neg(int a, int b) { int c = a = b; // <= Inc(a = 1); // <= if(a = b) {} // <= }
Данная диагностика классифицируется как:
|