title: structure padding information
body: <pre><code>struct abc
  {
    char arr[7];
    char arr1[2];
    int i:24;
  };
  </code></pre>
  
  <p>In the above structure using sizeof operator I got its size 12 byte. But according to my calculation (may be wrong) it should be 16 byte. Why it is giving 12 bytes?</p>
  
  <p>Another question:</p>
  
  <p>According to C99 section 6.7.2.1 paragraph 14 </p>
  
  <blockquote>
    <p>Each non-bit-filed member of a structure or union object is aligned in
    an implementation defined manner appropriate to its type.</p>
  </blockquote>
  
  <p>For a particular implementation, where will I get the documentation that describes how a specific compiler(e.g gcc) introduces padding in a structure? Is there any general rule for all compilers for a specific architecture?</p>