title: composite expression value assigned to wider type
body: <p>following is extract from the book MISRA C:2012 which I am unable to understand</p>
  
  <p>The value of composite expression (+ ,- ,* ,/ ,&amp;, |, ^, &lt;&lt;, >>, ?:) shall not be assigned to an object with wider type.</p>
  
  <p>Example:</p>
  
  <pre><code>u32a = u16a + u16b;     //non - compliant to MISRA C guidelines
  </code></pre>
  
  <p>where u16 is uint16_t and u32 is uint32_t.</p>
  
  <p>Will this cause any issue during program run ? we might need to use u32a as u16a might cause integer overflow in this case?</p>