Stringificação - como funciona?
Eu sei disso:
#define foo 4
#define str(s) #s
comstr(foo)
escreve:"foo"
, porque stringify é executado primeiro de expansão de texto, mas isso:
#define xstr(s) str(s)
#define str(s) #s
#define foo 4
comxstr(foo)
escreve:"4"
.
Por quê? Quais são as etapas envolvidas no processo?