#include struct str { int8_t n; }; void unaryOrPostfixOperator ( void ) { struct str *a[ 3 ]; int8_t i, *p, x, y; /* ----------------- Example code from MISRA C:2012 begin ----------------- */ a[ i ]->n; /* Compliant */ *p++; /* Compliant */ sizeof x + y; /* Non-compliant */ /* ------------------ Example code from MISRA C:2012 end ------------------ */ } void samePrecedenceLevel ( void ) { int8_t a, b, c, d; /* ----------------- Example code from MISRA C:2012 begin ----------------- */ a + b; /* Compliant */ a + b + c; /* Compliant */ ( a + b ) + c; /* Compliant */ a + ( b + c ); /* Compliant */ a + b - c + d; /* Compliant */ ( a + b ) - ( c + d ); /* Compliant */ /* ------------------ Example code from MISRA C:2012 end ------------------ */ } extern int8_t f ( int8_t a, int8_t b ); void mixedOperator ( void ) { int8_t x, a, b, c; /* ----------------- Example code from MISRA C:2012 begin ----------------- */ x = f ( a + b, c ); /* Compliant */ x = a == b ? a : a - b; /* Non-compliant */ x = ( a == b ) ? a : ( a - b ); /* Compliant */ x = a << ( b + c ); /* Compliant */ if ( a && b && c ) /* Compliant */ { } #if defined ( X ) && ( ( X + Y ) > Z ) /* Compliant */ #endif #if !defined ( X ) && defined ( Y ) /* Compliant */ #endif x = a, b; /* Compliant */ /* ------------------ Example code from MISRA C:2012 end ------------------ */ }