Wiem to:
#define foo 4
#define str(s) #s
zstr(foo)
pisze:"foo"
, ponieważ stringify jest wykonywane najpierw z rozszerzeniem tekstu, ale to:
#define xstr(s) str(s)
#define str(s) #s
#define foo 4
zxstr(foo)
pisze:"4"
.
Czemu? Jakie są etapy procesu?