Comment by Too

4 years ago

Classic pitfall with any type of text based pre processor. All variables inside need excessive amount of parenthesis.

In similar vein there is also the “do {} while 0” trick to allow macros to be appear like normal functions and end with semicolon.

Don’t even want to imagine how many more hacks would be needed to transform into another syntax using macros only.