in the original definition of ANSI C,
the assert macro
(see question 20.24b)
was not subject to quite the same rules;
assert(p) was not strictly legal.
This defect has been repaired in C99,
and assert(p) is okay again.
about this FAQ list