Groovy, I was just yesterday thinking about using an assert macro to make my code a bit safer, and then saw this thread today.

I would personally use a function as well to avoid the hacky stuff (and potential double-definitions of who_cares [even though who_cars could be declared globally and then re-assigned in the assertion, I guess]):
Code:
function failAssert(char *msg) {
	error(msg);
	sys_exit(NULL);
}
#define assert(con, msg) if(!(con))failAssert(msg)


Jibb


Formerly known as JulzMighty.
I made KarBOOM!