The double hash ##
is a token pasting operator of the preprocessor. The printf
will be re-written like this:
printf("%d",var12); // No double-hash
The double-number-sign or "token-pasting" operator (##), which is sometimes called the "merging" operator, is used in both object-like and function-like macros. It permits separate tokens to be joined into a single token and therefore cannot be the first or last token in the macro definition.