Return value of a boolean expression in C
<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>