The C standard gives an example:
#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);
But he also says: "The evaluation order of the operators # and ## is not specified."
Why is the hash_hash extension guaranteed to be interpreted as the ## operator applied to # instead of the # operator applied to ##?
rwallace
source share