The following code :
#define hash_hash # ## #
#define mkstr(a) # a
#define in_between(a) mkstr(a)
#define join(c, d) in_between(c hash_hash d)
char p[] = join(x, y);
should produce :
char p[] = "x ## y";
instead of :
char p[] = "xy";
I think stringify() is called too many. That's why I propose this fix.
However, even though it fixes this problem, I cannot tell you of any collateral damages ;)
Phil;
|