That's the worst of it, really. First, let me bring up something that is just plain incorrect in the Be Book right now. When it's time to compile away your debugging code, you can do one of two things. Either will do nicely. A topic beyond the scope of this article, makefiles are left to those who know how to use them.
More details are available in the Be Book.
This does 2 things. First, it sets up the global debugging mode so all files included afterward use the debugging macros. Now let's look at what most people want to do with debugging code. Dump information to where they can see it in testing. Reason being that the outer parentheses get stripped, and the inner ones get handed to printf.