rwa*_*ace 7 c macros c-preprocessor
C标准给出了以下示例:
#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); // equivalent to char p[] = "x ## y";
但它也说'#和##运营商的评估顺序尚未明确.'
为什么hash_hash保证的扩展被解释为应用于#的##运算符,而不是应用于##的#运算符?