Macro functions keep you from needing to use a mess of overloads and automatic function parameters, including void pointers. The problem is that they’re a pain to debug. The preprocessor is a replacement system so the logging function would be replaced by the code itself, leaving you without a function call in the debug log
Not at all familiar with that use of the comma operator, never seen its use like that before
It looks like it’s working right. The if-statement is evaluating to false and is terminating before using the function. To do it correctly, you need to replace the zero with a one or negate it with an exclamation point. If-statements only function on true and booleans treat 0 and 1 as false and true, respectively 🙂
Unless you mean something else?