title: Why #define TRUE (1==1) in a C boolean macro instead of simply as 1?
body: <p>I've seen definitions in C </p>
  
  <pre><code>#define TRUE (1==1)
  #define FALSE (!TRUE)
  </code></pre>
  
  <p>Is this necessary? What's the benefit over simply defining TRUE as 1, and FALSE as 0?</p>