Учитывая
#define cat(x,y) x##y
вызов cat(a,1)
возвращает a1
, но cat(cat(1,2),3)
не определен.
Однако, если я также определю #define xcat(x,y) cat(x,y)
, то результат xcat(xcat(1,2),3)
теперь будет 123
. Кто-нибудь может подробно объяснить, почему это так?