Jan Engelhardt <[EMAIL PROTECTED]> wrote: > On May 25 2007 14:14, David Miller wrote:
>>"!!" is used in contexts where pointers might be being >>tested as well as plain integers, the "!!" turns a pointer >>into the equivalent integer boolean for testing. >> >>NULL pointers become 0 >>non-NULL pointers become 1 > > Though, > if(!!ptr) > is effectively the same as > if(ptr) Not exactly, if(foo) is the same as if( (int) foo), which is not guaranteed to result in non-null values for non-null pointers. ISO 9899/1999 says: "Any pointer may be converted to an integer type. [...] The result need not be in the range of values of any integer type." "if(!!foo)" is the same as "if(0 == (0 == foo))", which is (I asume) the same as "if(0 == ((type_of_foo)NULL == foo))", or if((type_of_foo)NULL != foo). -- Funny quotes: 11. Atheism is a non-prophet orgainization. Friß, Spammer: [EMAIL PROTECTED] [EMAIL PROTECTED] - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/