title: use of typedef struct in embedded C code
body: <p>I came across this piece of code in one of MicroChip's example codes. I'm unable to understand what it exactly means</p>
  
  <pre><code>typedef struct __attribute__((packed))
  {
      BYTE command;
      BYTE data;
  } ACCESSORY_APP_PACKET;
  </code></pre>
  
  <p>I can understand that a struct aliased ACCESSORY_APP_PACKET is being created, but what does the <code>__attribute__((packed))</code> mean? It makes <code>__attribute__</code> as a function. But if that is so, how is it being typedef'd as a struct?
  <br>
  BYTE is a known datatype made by Microchip.</p>
  
  <p>Thanks.</p>