All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sonar.l10n.java.rules.squid.S881.html Maven / Gradle / Ivy

There is a newer version: 8.6.0.37351
Show newest version

The use of increment and decrement operators in combination with other arithmetic operators is not recommended, because:

It can significantly impair the readability of the code.

It introduces additional side effects into a statement, with the potential for undefined behavior.

It is safer to use these operators in isolation from any other arithmetic operators.

Noncompliant Code Example

u8a = ++u8b + u8c--; 
foo = bar++ / 4;

Compliant Solution

The following sequence is clearer and therefore safer:

++u8b;    
u8a = u8b + u8c; 
u8c--; 
foo = bar / 4;
bar++;

See

  • MISRA C:2004, 12.1
  • MISRA C:2004, 12.13
  • MISRA C:2004, 13.3
  • MISRA C++:2008, 5-2-10
  • MISRA C:2012, 12.1
  • MISRA C:2012, 13.3
  • CERT, EXP30-C - Do not depend on the order of evaluation for side effects
  • CERT, EXP30-CPP - Do not depend on order of evaluation between sequence points
  • CERT, EXP05-J - Do not follow a write by a subsequent write or read of the same object within an expression




© 2015 - 2025 Weber Informatics LLC | Privacy Policy