title: Is it safe to expect there will be no padding between members?
body: <p>As stated by the C11 draft, I can assure these two:</p>
  
  <ol>
  <li><blockquote>
    <p>... There may be unnamed padding within a structure object, <strong>but not at its beginning</strong>.</p>
  </blockquote></li>
  <li><blockquote>
    <p>There may be unnamed padding <strong>at the end of a structure or union</strong>.</p>
  </blockquote></li>
  </ol>
  
  <p>However, it's ambiguous to me if a padding between any two members is acceptable. <strong>It's because, by saying the second paragraph, the standard seems to insinuate the padding is only possible at the end of a structure or union.</strong> For example, assuming <code>int</code> occupies 4 bytes here,</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  struct s {
      char c;
      int a;
  };
  
  int main(void) {
      printf("%d\n", sizeof(struct s));
      return 0;
  }
  </code></pre>
  
  <p>am I safe to conclude that there would be no padding between <code>c</code> and <code>a</code>?</p>