title: Why c-faq 16.7 solution does not consider padding bytes?
body: <p><a href="http://c-faq.com/strangeprob/ptralign.html" rel="nofollow noreferrer">http://c-faq.com/strangeprob/ptralign.html</a></p>
  
  <p>In 16.7, the author explains:</p>
  
  <pre><code>s.i32 = *(long int *)p;
  s.i16 = *(int *)p;
  </code></pre>
  
  <p>will get into trouble 'cause these casted pointer may not be aligned. So he uses byte wise manipulation instead for solution.</p>
  
  <p>My question is, since this code:</p>
  
  <pre><code>struct mystruct {
      char c;
      long int i32;
      int i16;
  } s;
  </code></pre>
  
  <p>will have padding bytes after 'char c;', why didn't the author skip the padding when he try to get the 'long int i32;'?</p>