Jan Engelhardt wrote: > 0 is all-bits-zero. > NULL is 0. ("It is.", above) > > Transitively, this would make NULL all-bits-zero. > I might have missed something, though, perhaps that the cast to void* makes it > intransitive.
It does -- a cast from integer to pointer isn't required to be a bitwise noop. Machines on which NULL isn't bitwise zero do exist, and the C standard allows them. What is almost certainly more common than "all bits zero is not a NULL pointer" is "any NULL pointer is not necessarily all bits zero"; there are quite a few machines on which there are nonzero bitpatterns that are still valid NULL pointers, but an all-zero memset() will still produce NULL pointers. However, the particular supersets of the C standard that gcc provides and which the kernel are written in (the latter being a proper subset of the former) does not. -hpa - 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/