Ex37: starting with `#undef NDEBUG`

Why does the c-code in hashmap.c start with #undef NDEBUG? Shouldn’t we let the compiler options handle this?

I habitually develop using make clean; make dev and when finished do a final make clean; make. That way, I will only see the debug statements when developing, not when using the final build. If I include a #undef NDEBUG at the start of a program, this means, by definition I will see all debug statements.

What is the reason that the book includes a #undef NDEBUG?

Kind regards, Guus.

That actually might just be a typo with some code I left in on accident. Typically I only put that at the top of a file when I only want the debug messages of a single file I’m working on, then I delete it.