[lkml]   [2002]   [Jan]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: RFC: booleans and the kernel
Helge Hafting wrote:
> Why would anyone want to write if (X==false) or if (X==true) ?
> It is the "beginner's mistake" way of writing code. Then people learn,
> and write if (X) or if (!X). Comparing to true/false is silly.
> Nobody writes if ( (a==b) == true) so why do it in the simpler cases?

I usually without the == in these cases:

if (pointer) // test for non-0.
if (condition)
if (condition-valued-variable)

but not in these (although I am not very consistent):

if (integer != 0)
if (char != 0)

When using bool, I'm happy to write "if (X)" where X is a truth value
indicating a condition that has been tested, but if X were used as an
enumeration of truth values e.g. as in a theorem prover or a logic
simulator, I would tend to write ==, for example:

if (X == true && ptr && *ptr > 1)

The point being to illustrate the intent of the test (i.e. is it a
boolean test or a comparison against a point in a range of values), not
simply for it to be semantically correct.

Just to break that rule, however, if p were a pointer and x were an
integer, I would write:

x = (p != 0);

rather than

x = p;


-- Jamie
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:18    [W:0.086 / U:1.200 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site