Back to topic: I'm using similar macros in my code, but I don't write the final ;. This reminds me that it's a macro and not a function.

A single ';' throws an error in lite-C because in most cases it is not intended, but caused by an error in the preceding line.