title: Managing redundant typedefs from multiple vendors
body: <p>What are some of the best ways to manage redundant typedefs used for platform independence from multiple middleware (operating systems, protocol stacks) vendors in the C programming language.</p>
  
  <p>e.g.:<br>
  <strong>target.h</strong></p>
  
  <pre><code>/* inclusion lock etc */
  typedef char CHAR;
  typedef unsigned char BYTE;
  typedef unsigned short int WORD;
  /* ... more of the same ... */
  </code></pre>
  
  <p><strong>OS_types.h</strong></p>
  
  <pre><code>/* inclusion lock etc */
  typedef char CHAR;
  typedef unsigned char BYTE;
  typedef unsigned short int WORD;
  /* ... more of the same ... */
  </code></pre>
  
  <p>At some point the compiler recognizes that it has two redundant typedef symbols and bails out with an error because this is simply not allowed by definition in C.</p>