title: Is array different w/ and w/o GCC aligned attribute in rpi3?
body: <p>Currently I'm tracing the example of rpi3 mailbox and I found something weird.
  According to <a href="https://github.com/raspberrypi/firmware/wiki/Mailbox-property-interface" rel="nofollow noreferrer">wiki</a>:</p>
  <blockquote>
  <p>The buffer itself is 16-byte aligned as only the upper 28 bits of the address can be passed via the mailbox.</p>
  </blockquote>
  <p>and I found the <a href="https://github.com/bztsrc/raspi3-tutorial/blob/master/04_mailboxes/mbox.c" rel="nofollow noreferrer">code</a> might be relative with the description:</p>
  <pre class="lang-cpp prettyprint-override"><code>volatile unsigned int  __attribute__((aligned(16))) mbox[36];
  </code></pre>
  <p>I think the author try to aligned it with 16 bytes but I dump the member's address in C code:</p>
  <pre class="lang-cpp prettyprint-override"><code>#include &lt;stdio.h&gt;
  volatile unsigned int  __attribute__((aligned(16))) mbox[36];
  
  int main()
  {
      printf(&quot;%p\n%p\n%p\n&quot;, &amp;mbox[0], &amp;mbox[1], &amp;mbox[2]);
  
      return 0;
  }
  </code></pre>
  <p>output:</p>
  <pre><code>0x601040
  0x601044
  0x601048
  </code></pre>
  <p>I found it's 4 bytes aligned. My question is what is the purpose of this attribute in here or did it matter?</p>