Freigeben über


Phasen der Übersetzung

C- und C++-Programme bestehen aus einem oder mehreren Quelldateien, von denen jede einen Teil des Texts des Programms enthält.Eine Quelldatei zusammen mit den Dateien (Dateien, die mit der #include-Präprozessordirektiven enthalten sind), jedoch ohne die Codeabschnitte entfernt #ifwie Direktive durch Bedingt Kompilierung aufgerufen wird, eine Übersetzungseinheit „.“

Quelldateien können zu unterschiedlichen Zeiten übersetzt werden, ist es häufig systemintern nur veraltete Dateien zu übersetzen.Die übersetzten Übersetzungseinheiten können in mehrere Objektdateien oder Objektcode Bibliotheken verarbeitet werden.Diese separaten, übersetzten Übersetzungseinheiten werden dann verknüpft, um ein ausführbares Programm oder eine DLL (Dynamic Link Library) zu bilden.Weitere Informationen zu Dateien, die als Eingabe für den Linker verwendet werden können, finden Sie unter LINK-Eingabedateien.

Übersetzungseinheiten können mit kommunizieren:

  • Aufrufe der Funktionen, die auf externe Bindung verfügen.

  • Aufrufe der Klassenmember Funktionen externer Bindung verfügen.

  • Auf Änderung der Objekte, die auf externe Bindung verfügen.

  • Direkte Änderung von Dateien.

  • Prozessübergreifende Kommunikation (nur für Microsoft Windows-basierte Anwendungen.)

Die folgende Liste beschreibt die Phasen, in denen der Compiler Dateien übersetzt:

  • Zuordnung von Zeichen
    Zeichen in der Quelldatei sind für die interne Darstellung der Quelle zugeordnet.Trigraph sequenzen werden in einzelnen Zeichen internen Darstellung in dieser Phase konvertiert.

  • Zeilenverbinden
    Alle Zeilen, die in einem umgekehrten Schrägstrich (\) und endet unmittelbar vor einer Zeilenendemarke werden mit der nächsten Zeile in der Quelldatei bezieht, die logische Zeilen aus den physischen Zeilen zusammengeführt werden.Sofern es leer ist, muss eine Quelldatei in einem Zeilenumbruchzeichen endet, das nicht von einem umgekehrten Schrägstrich vorangestellt wird.

  • Tokenisierung
    Die Quelldatei wird in Vorverarbeitungs token und Leerzeichen umbrochen.Kommentare in der Quelldatei werden jeweils durch ein Leerzeichen ersetzt.Zeilenumbruchzeichen werden beibehalten.

  • Vorverarbeiten
    Vorverarbeitungs Direktiven werden ausgeführt, und Makros werden in die Quelldatei erweitert.Die #include-Anweisung ruft die Übersetzung ein, die mit den vorhergehenden drei Übersetzungs schritten auf allen enthaltenen Text beginnt.

  • Zuordnung Zeichensatz
    Alle Member der Zeichensatz Quelle und Escapesequenzen werden mit ihren Entsprechungen im Ausführungszeichensatz konvertiert.Für Microsoft C# und C++ sind die Quell- und die Ausführungszeichensätze ASCII.

  • Zeichenfolgenverkettung
    Alle benachbarte Zeichenfolge und Breit STRING-Literale verkettet werden.Beispiel: "String " "concatenation" wird zu "String concatenation".

  • Übersetzung
    Alle Token sind syntaktisch und semantisch analysiert. diese Token sind in Objektcode konvertiert.

  • Bindung
    Alle externen Verweise aufgelöst werden, um ein ausführbares Programm oder eine DLL (Dynamic Link Library) zu erstellen.

Die Compiler Warnungen oder Fehlern Problem bei der Übersetzung der Phasen, in denen die Syntaxfehler ermittelt.

Der Linker löst alle externen Verweise auf und erstellt ein ausführbares Programm oder eine DLL-Datei, indem Sie eine oder mehrere separat verarbeiteten Übersetzungseinheiten zusammen mit Standardbibliotheken kombiniert.

Siehe auch

Referenz

Präprozessor