Re: double exclamation (!!) suckage in the kernel

From: Satyam Sharma
Date: Fri May 25 2007 - 17:37:32 EST


On 5/26/07, Al Viro <viro@xxxxxxxxxxxxxxxx> wrote:
On Sat, May 26, 2007 at 02:26:11AM +0530, Satyam Sharma wrote:
> also be brave enough to take a C quiz here :-)
>
> > what type should x have for !!x to be a valid expression?
>
> Any integer type (includes pointers)

Er, no... Pointers are not integer types *and* you can use ! on any
scalar type (including floating ones, even though it's not particulary
useful there).

Yeah, I noticed this (with a sample program) just after the quiz ...

> > what will be the type of result?
>
> int (I guess boolean for C99?)

Actually, ! and comparisons still give int in C99 (and !x is defined as
(x == 0) in all situations).

Hmm, thanks for explaining this.

Satyam
-
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/