Ich bin kürzlich auf den Begriff "Multi-Pass-Compiler" gestoßen. Im Wesentlichen ist es jeder Compiler, der den Quellcode mit mehr als einem Durchlauf analysiert.Ist der C-Preprozessor Multi-Pass in Betrieb?
Also habe ich gedacht, ist der C-Pre-Prozessor Multi-Pass in Betrieb?
Sagen wir, ich habe den folgenden C-Code.
int bar = foo;
#define foo 1
Die einzige Möglichkeit, dies in den Pass funktionieren könnte durch, wenn der Präprozessor den ganzen Weg durch den Code ging Präprozessordirektiven gesucht und ging durch den Code dann wieder die Ersetzungen zu machen.
Funktioniert der Präprozessor so?
Sie könnten, y'know, _test es out._ –
@MattBall Die Frage wurde von einer C-ähnlichen Programmiersprache inspiriert, in der die Der obige Code ist gültig. – Izzo
Es gibt * rescanning *, aber das passiert nur, wenn "rekursiv" ein Makro expandiert, es scannt nie weiter zurück über die aktuelle Erweiterung, die gerade verarbeitet wird. Also würde ich es nicht als Multipass bezeichnen. –