From: Paul Brannan Date: 2002-10-26T04:57:29+09:00 Subject: Re: How come true, false don't support <=> (comparison) operator? On Sat, Oct 26, 2002 at 03:43:21AM +0900, Austin Ziegler wrote: > Actually, in C, that's not necessarily the case. 'false' is integer > 0, whereas true is *properly* defined as !0 -- which may be either > one (0x00000001) or -1 (0xFFFFFFFF). Now, if truth is measured > exclusively with unsigned values, then false < true is always true > -- but with signed values, that's not necessarily the case. I've never read C89, but C99 requires that all boolean operators output 0 for false and 1 for true. It becomes confusing because these same operators are required to treat as true all non-zero values they take as input. Paul