Stringifizierung - wie geht das?

Ich weiß das:

#define foo 4  
#define str(s) #s

mitstr(foo) schreibt aus:"foo", weil stringify zuerst von der Texterweiterung ausgeführt wird, aber dies:

 #define xstr(s) str(s)
 #define str(s) #s
 #define foo 4

mitxstr(foo) schreibt aus:"4".

Warum? Welche Schritte sind in den Prozess involviert?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage