Стрификация - как это работает?
Я знаю это:
#define foo 4
#define str(s) #s
с участиемstr(foo)
пишет:"foo"
потому что stringify выполняется первым из раскрытия текста, но это:
#define xstr(s) str(s)
#define str(s) #s
#define foo 4
с участиемxstr(foo)
пишет:"4"
.
Почему? Какие шаги участвуют в процессе?