Note that C11 has a more friendly static assertion feature:
_Static_assert(condition, "error message if condition evaluates to false");
(You can also use "static_assert" as an alias for the ugly keyword after including <assert.h>.)