title: Double alignment
body: <p>Following the discussion from <a href="https://stackoverflow.com/questions/11099477/why-favour-data-structure-alignment">this post</a>, I have understood that the main reason for the alignment of structure members is performance (and some architectures restrictions).</p>
  
  <p>If we will investigate Microsoft (Visual C++), Borland/CodeGear (C++-Builder), Digital Mars (DMC) and GNU (GCC) when compiling for 32-bit x86: The alignment for <code>int</code> is 4 bytes and if <code>int</code> is not aligned, it can happen that 2 rows of memory banks will be read.</p>
  
  <p>My question is why not to make <code>double</code> to be 4 bytes aligned also? 4 bytes aligned <code>double</code> also will cause 2 rows of memory banks reading....</p>
  
  <p>For example in the following example, since <code>double</code> is 8-aligned, the actual size of structure will be <code>sizeof(char) + (alignment for double padding) + sizeof(int) = 20 bytes</code>.</p>
  
  <pre><code>typedef struct structc_tag{
      char        c;
      double      d;
      int         s;
  } structc_t;
  </code></pre>
  
  <p>Thank you</p>