
AMDG Gottlob Frege wrote:
On Tue, Nov 17, 2009 at 7:35 PM, Mateusz Loskot <mateusz@loskot.net> wrote:
Emil Dotchevski wrote:
Assuming ptr is a pointer, AFAIK assert(ptr) is illegal, though assert(ptr!=0) and assert(!ptr) are OK.
Yes, that's right. In this case some suggest to use assert(!!ptr) what I do not really consider personally as readable, prefering assert(0 != ptr);
Can someone explain how assert(ptr) is illegal? I haven't heard that before. Is if (ptr) illegal now too?
I don't think so. I don't have a copy of the current C standard handy, but n1336 (which is the current draft) says: "Arithmetic types and pointer types are collectively called scalar types. Array and structure types are collectively called aggregate types.39)" "#include <assert.h> void assert(scalar expression);" In Christ, Steven Watanabe