Well, __ASSERT_VOID_CAST will be another macro somewhere, and when statements are disabled, it will expand to something equivalent with
((void) 0)
which is a way to get the void expression. In older implementations, assert() simply expanded to an empty string, but the void expression allows you to use a comma to extract it into the expression, for example:
while(assert(n > 0), k/n > 10) { ... }
source share