title: How does this endian conversion work?
body: <p>A QNX library called gfpr.h contains the line</p>
  
  <pre><code>#define ENDIAN_LE16(__x)    (__x)
  </code></pre>
  
  <p>which is used as follows</p>
  
  <pre><code>var1 = ENDIAN_LE16(var1);
  </code></pre>
  
  <p>to convert the endianness of (unsigned short) var1.  How does this work?  <code>__x</code> and <code>x__</code> must have some special meaning to the preprocessor?  </p>