title: Right hand operand of '&&' or '||' is an expression with possible side effects
body: <p>Code statement look like below: </p>
  
  <pre><code>if((temp1 == ID1) || (temp2 == (C_UINT16) ID2))
  {
  
  }
  </code></pre>
  
  <p>I am not sure why QAC is generating this warning. What will be the side effect &amp; how to avoid this warning. </p>
  
  <p>Details for QAC-help:</p>
  
  <blockquote>
    <p>The right hand operand of a logical &amp;&amp; operator is only evaluated if
    the left hand operand evaluates to 1 ("true"). The right hand operand
    of a logical || operator is only evaluated if the left hand operand
    evaluates to 0 ("false"). </p>
    
    <p>Because of this behaviour, confusion can arise if the right hand
    operand of either of these operators generates side effects. Message
    3415 is generated to identify such a situation. </p>
    
    <p>Side effects occur when an expression:  </p>
  </blockquote>
  
  <ol>
  <li>accesses a volatile object</li>
  <li>executes an increment, decrement, assignment or compound assignment
  operation</li>
  <li>performs I/O  or</li>
  <li>calls a function which does any of the above</li>
  </ol>
  
  <blockquote>
    <p>However QAC assumes that side effects occur whenever a function is
    called, unless the function has specifically been identified as being
    free from side effects by a #pragma statement of the form:</p>
  </blockquote>
  
  <pre><code>#pragma PRQA_NO_SIDE_EFFECTS funcname
  </code></pre>