Re: [RFC][PATCH] A generic boolean (version 6)

From: Lars Noschinski
Date: Fri Jul 28 2006 - 16:22:02 EST


* Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> [2006-07-28 22:14]:
Ar Iau, 2006-07-27 am 13:13 -0700, ysgrifennodd Nicholas Miell:
The compiler knows that "b = !!b;" is a no-op.

b = !!b isn't a no-op.

For _Bool it should be:

Try printf("%d", !!4);

printf("%d, %d", (_Bool)4, !!(_Bool)4);

prints "1, 1". From ISO/IEC 9899:1999:

When any scalar value is converted to _Bool, the result is 0 if the
value compares equal to 0; otherwise, the result is 1.


Greetings,
Lars
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/