C: Expand Macro With Token Pasting

Solution 1:

In C the operands of the token pasting operator ## are not expanded.

You need a second level of indirection to get the expansion.

#define CAT(x, y) CAT_(x, y)
#define CAT_(x, y) x ## y