Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Wie Wird das Programm Ausgeführt? | Einführung in C
C-Grundlagen

bookWie Wird das Programm Ausgeführt?

Note
Definition

Ein Compiler ist ein spezialisiertes Programm, das menschenlesbaren C-Quellcode in Maschinencode übersetzt, den der Prozessor ausführen kann. Dieser Übersetzungsprozess ermöglicht es, dass Ihre geschriebenen Anweisungen zu einer ausführbaren Datei werden, die der Computer versteht und ausführt.

Um unseren Code in spezifische Befehle für den Prozessor umzuwandeln, wird ein Compiler benötigt. Der Compiler verarbeitet den Code sequenziell von oben nach unten. Der Kompilierungsvorgang durchläuft mehrere Phasen:

  • Vorverarbeitungsphase: Alle #include-Direktiven werden verarbeitet, externe Dateien, Bibliotheken und andere benötigte Komponenten werden in Ihr Programm integriert;

  • Syntaxfehleranalyse: Der Compiler prüft auf Syntaxfehler und stoppt die Kompilierung, falls Fehler gefunden werden, und hebt diese zur Korrektur hervor;

  • Kompilierung zur ausführbaren Datei: Das Programm wird in eine ausführbare Datei übersetzt (z. B. .exe unter Windows), sodass Sie es wie jede andere Anwendung ausführen können.

Eine ausführbare Datei ist einfach eine Reihe von Anweisungen (Maschinencode), die für den Prozessor bestimmt sind. Zum Vergleich könnte der Ausdruck "Hello, c<>definity" im Maschinencode einer bestimmten Sequenz ähneln.

program.exe

program.exe

copy
12
01001000011001010110110001101100011011110010110000100000011000110011110000111 110011001000110010101100110011010010110111001101001011101000111100100100001

Dem folgenden Code wurde absichtlich ein Fehler hinzugefügt, um zu zeigen, wie der C-Compiler Probleme erkennt und meldet.

Main.c

Main.c

copy
12345678
#include <stdio.h> int main() { printf("some text") // Error line return 0; }

Der Compiler erwartet ein Semikolon (;) am Ende der fünften Zeile. Fehlt dieses, erkennt der Compiler nicht, wo die Anweisung endet, und behandelt return 0; als Teil derselben Zeile. Dadurch tritt der Fehler in der nächsten Zeile auf, obwohl das eigentliche Problem das fehlende Semikolon nach printf ist.

Main.c

Main.c

copy
12345678
#include <stdio.h> int main() { ;; ;;;;;; printf("C language\n");;; ;return 0; ;;; }

Der C-Compiler ist bei zusätzlichen Semikolons recht nachsichtig. Auch wenn sie ungewöhnlich erscheinen, werden mehrere ; als leere Anweisungen behandelt und beeinflussen das Verhalten des Programms nicht. Der Code wird weiterhin ohne Probleme kompiliert und ausgeführt, jedoch ist es gute Praxis, unnötige Semikolons zu vermeiden, um den Code sauber und lesbar zu halten.

question mark

Was sind die Schritte beim Kompilieren?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

What are the main stages of the compilation process?

Can you explain what a preprocessor does in more detail?

Why does the compiler sometimes report errors on the wrong line?

Awesome!

Completion rate improved to 2.63

bookWie Wird das Programm Ausgeführt?

Swipe um das Menü anzuzeigen

Note
Definition

Ein Compiler ist ein spezialisiertes Programm, das menschenlesbaren C-Quellcode in Maschinencode übersetzt, den der Prozessor ausführen kann. Dieser Übersetzungsprozess ermöglicht es, dass Ihre geschriebenen Anweisungen zu einer ausführbaren Datei werden, die der Computer versteht und ausführt.

Um unseren Code in spezifische Befehle für den Prozessor umzuwandeln, wird ein Compiler benötigt. Der Compiler verarbeitet den Code sequenziell von oben nach unten. Der Kompilierungsvorgang durchläuft mehrere Phasen:

  • Vorverarbeitungsphase: Alle #include-Direktiven werden verarbeitet, externe Dateien, Bibliotheken und andere benötigte Komponenten werden in Ihr Programm integriert;

  • Syntaxfehleranalyse: Der Compiler prüft auf Syntaxfehler und stoppt die Kompilierung, falls Fehler gefunden werden, und hebt diese zur Korrektur hervor;

  • Kompilierung zur ausführbaren Datei: Das Programm wird in eine ausführbare Datei übersetzt (z. B. .exe unter Windows), sodass Sie es wie jede andere Anwendung ausführen können.

Eine ausführbare Datei ist einfach eine Reihe von Anweisungen (Maschinencode), die für den Prozessor bestimmt sind. Zum Vergleich könnte der Ausdruck "Hello, c<>definity" im Maschinencode einer bestimmten Sequenz ähneln.

program.exe

program.exe

copy
12
01001000011001010110110001101100011011110010110000100000011000110011110000111 110011001000110010101100110011010010110111001101001011101000111100100100001

Dem folgenden Code wurde absichtlich ein Fehler hinzugefügt, um zu zeigen, wie der C-Compiler Probleme erkennt und meldet.

Main.c

Main.c

copy
12345678
#include <stdio.h> int main() { printf("some text") // Error line return 0; }

Der Compiler erwartet ein Semikolon (;) am Ende der fünften Zeile. Fehlt dieses, erkennt der Compiler nicht, wo die Anweisung endet, und behandelt return 0; als Teil derselben Zeile. Dadurch tritt der Fehler in der nächsten Zeile auf, obwohl das eigentliche Problem das fehlende Semikolon nach printf ist.

Main.c

Main.c

copy
12345678
#include <stdio.h> int main() { ;; ;;;;;; printf("C language\n");;; ;return 0; ;;; }

Der C-Compiler ist bei zusätzlichen Semikolons recht nachsichtig. Auch wenn sie ungewöhnlich erscheinen, werden mehrere ; als leere Anweisungen behandelt und beeinflussen das Verhalten des Programms nicht. Der Code wird weiterhin ohne Probleme kompiliert und ausgeführt, jedoch ist es gute Praxis, unnötige Semikolons zu vermeiden, um den Code sauber und lesbar zu halten.

question mark

Was sind die Schritte beim Kompilieren?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 3
some-alt