title: Return value of a boolean expression in C
body: <p>For reasons that are not worth mentioning, I want to know if there's a standard defined value for boolean expressions. E.g.</p>
  
  <pre><code>int foo () {
      return (bar &gt; 5);
  }
  </code></pre>
  
  <p>The context is that I'm concerned that our team defined TRUE as something different than 1, and I'm concerned that someone may do:</p>
  
  <pre><code>if (foo() == TRUE) { /* do stuff */ }
  </code></pre>
  
  <p>I know that the best option would be to simply do </p>
  
  <pre><code>if (foo())
  </code></pre>
  
  <p>but you never know.</p>
  
  <p>Is there a defined standard value for boolean expressions or is it up to the compiler? If there is, is the standard value something included in C99? what about C89?</p>