О ## препроцессоре в C

Учитывая

#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. Кто-нибудь может подробно объяснить, почему это так?

10
задан Jay Sullivan 14 June 2012 в 20:10
поделиться