On Sunday, 24 November 2013 at 21:13:12 UTC, deadalnix wrote:
On Sunday, 24 November 2013 at 21:00:53 UTC, Maxim Fomin wrote:
It is comparison with NULL and zero (I though it is obvious
that the code snippet is written in C), because NULL is always
zero by definition ("an integer constant expression with the
value 0, or such an expression casted to void*"). If this is
not the case, then implementation is broken. Which of them you
are talking about?
http://c-faq.com/null/machexamp.html
You confused runtime bit pattern and zero integer constant. NULL
is always zero integer constant (probably casted to void*) by
definition.
http://c-faq.com/null/varieties.html
if(ptr) is as good as if(ptr != 0) or if(ptr != NULL) regardless
of null bit pattern
"The internal (or run-time) representation of a null pointer,
which may or may not be all-bits-0 and which may be different for
different pointer types. The actual values should be of concern
only to compiler writers. Authors of C programs never see them,
since they use..The null pointer constant, which is a constant
integer 0 "