These are the three I use to build my C99 assert() function and some other tracing stuff.
It's not really necessary. GPC has a built-in `Assert' procedure which in case of failure gives a regular runtime error.
Yes, but my reading of this was that it could not be compiled out (turned off, but not compiled out), which is insufficient - it does not properly encourage asserting *everything* which (IMO, as well as Steve Maguire's, see Writing Solid Code which is a very good book (despite coming from Microsoft)). As much as possible I assert every precondition on entry and every post condition on exit to procedures, as well as asserting the validity of data structures and such. All this code is far too time consuming to leave in a shipping version.
I understand why the Assert's in GPC are done that way, but it does not work for me in the way I use assertions.
Enjoy, Peter.