Стрификация - как это работает?

Я знаю это:

#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".

Почему? Какие шаги участвуют в процессе?

Ответы на вопрос(2)

Ваш ответ на вопрос