Hallo und willkommen.
In diesem Video möchte ich Ihnen erklären, was Compilerfehler sind.
Bis zu diesem Punkt.
Richtig.
Wir haben etwas Code geschrieben und festgestellt, dass wir im Build-Ausgabefenster einen Kompilierbefehl
eingeben und wissen, wann wir Fehler haben.
Richtig.
Normalerweise gibt es eine nette Beschreibung, die besagt, dass es einen Fehler in Ihrem Code gibt, aber was genau
bedeutet das?
Wenn man also Code für eine Programmiersprache schreibt, dann sind Programmiersprachen sehr, sehr streng.
Sie haben Regeln.
Und man muss diese Regeln befolgen, um ein Programm lauffähig zu machen.
Ein Compiler prüft tatsächlich die Syntax des Codes.
Wenn er korrekt ist und keine semantischen Fehler enthält, wird aus dem Quellcode ein Code in Maschinensprache erzeugt,
und Sie können ein Programm ausführen.
Sie müssen also diese Regeln befolgen, und es sind sehr detaillierte Regeln.
Man muss also sehr detailorientiert sein.
Compilerfehler können also in zwei Formen auftreten.
Sie können in Form eines Syntaxfehlers oder eines semantischen Fehlers auftreten.
Ein Syntaxfehler liegt vor, wenn etwas mit der Struktur des Codes nicht stimmt, wenn Sie sich
nicht an die Regeln der Sprache in Bezug auf ihre Syntax halten, richtig?
Sie setzen die Klammern nicht an der richtigen Stelle.
Sie fügen nicht alle Ihre Aussagen mit einem Semikolon ein.
Sie sind nicht Sie sind falsch geschriebene Schlüsselwörter.
Dies sind alles gängige Beispiele.
Ein Semikolon ist ein sehr gebräuchliches Zeichen, wenn man zum ersten Mal anfängt.
Wenn Sie also eine Variable deklarieren und sie fünf zuweisen, aber kein Semikolon am Ende haben,
ist das ein Syntaxfehler.
Mit dieser Struktur stimmt etwas nicht.
Das ist dasselbe, wie wenn Sie eine printf-Anweisung verwenden und eine printf-Anweisung in doppelten Anführungszeichen sagen, aber
das Ende, das doppelte Anführungszeichen, vergessen.
Das ist ein Syntaxfehler.
Wenn der Compiler Ihren Quellcode durchsucht und diesen Fehler findet, gibt er
in der Regel eine Fehlerbeschreibung aus, die Sie in die richtige Richtung weist, und nennt in der Regel
auch die Zeilennummer.
Und das haben wir in früheren Videos gesehen.
Die andere Fehlerart, die der Compiler abfangen kann, ist ein semantischer Fehler.
Es werden nicht immer semantische Fehler erkannt, wenn es sich um logische Fehler handelt, aber semantische Fehler bedeuten in der Regel, dass etwas
mit der Bedeutung nicht stimmt.
Die Absicht des Programms.
Wenn Sie also zum Beispiel zwei Variablen A und B hinzufügen würden, aber diese Variablen sind von unterschiedlichem
Typ und es macht keinen Sinn, richtig?
Es macht keinen Sinn, A und B zu addieren.
Der Compiler kann diese semantischen Fehler manchmal erkennen.
Andere semantische Fehler haben mit der Logik zu tun, und wir werden diese diskutieren.
Und der Compiler findet diese nicht immer.
Die Struktur war korrekt und alles war in Ordnung mit der Struktur, aber logisch gesehen stimmte etwas nicht.
Es gibt einen Fehler in der Logik des Codes.
Wenn man also an semantische Fehler denkt, an das, was der Compiler abfangen kann, dann hat das eher
mit dem Abfangen von Typen zu tun und mit Dingen, die man nicht tun soll, mit verschiedenen Regeln der Sprache, die
zum Beispiel Variablentypen betreffen.
Werfen wir also einen Blick auf den Code Light, um einige häufige Beispiele für Syntax- und Semantikfehler in der Programmiersprache
C zu sehen.
Hier sind wir also in Code Light mit einer einfachen Anwendung vom Typ Hello World.
Dieser Code wird für Sie aus Ihren Projekteinstellungen generiert.
Wenn Sie es als Vorlage gespeichert haben.
Ein sehr einfacher Code, oder?
Und wenn Sie diese Datei kompilieren, wird sie Ihnen mitteilen, ob Sie Fehler in der Syntax haben oder nicht.
Sie können erneut mit der rechten Maustaste klicken und Kompilieren sagen.
Und im Moment haben wir keine Fehler, richtig?
Aber syntaktisch halten wir uns an alle Regeln.
Aber die Syntax umfasst wiederum die gesamte Struktur des Codes.
Wenn Sie also kein Semikolon oder kein Pfundsymbol vor einem Include haben und versuchen, es zu
kompilieren.
Sie werden sehen, dass ein Fehler aufgetreten ist, und normalerweise hat der Compiler-Fehler irgendeine Bedeutung.
Wenn Sie mehr und mehr Code schreiben und immer mehr Übung haben, werden diese Compiler nicht mehr so stumpfsinnig
sein.
Sie werden nicht so unanschaulich sein, dass man mit ihnen vertraut ist, wie zum Beispiel:
Dieser Fehler sagt, dass wir einen Fehler in Zeile eins haben, richtig?
Und das ist gut so.
Sie können darauf doppelklicken.
Es wird zu diesem Fehler gehen, aber es sagt erwartete Gleichungen wissen Semikolon.
Es sagt Ihnen nicht wirklich, was los ist.
Wissen Sie, durch die Programmierpraxis werden Sie feststellen, oh, ich habe das Pfund-Symbol vergessen.
Daher sind einige Compilerfehler nicht so anschaulich, wie man es sich als Programmieranfänger wünschen würde.
Also fügen Sie das Pfund-Symbol hinzu, kompilieren Sie neu, und schon kann es losgehen.
Wenn Sie das Standard-i o falsch geschrieben haben, wird es manchmal nicht gefunden.
Sie speichern es also, kompilieren es neu und sehen eine Fehlermeldung, die ein wenig aussagekräftiger ist.
Richtig?
Keine solche Datei oder Verzeichnis Stdio. h das sagt einem irgendwie, oh, vielleicht hast du es falsch geschrieben.
Rechtschreibfehler sind also keine Seltenheit.
Sie wissen schon, die Dinge nicht ins rechte Licht rücken, wenn man sie in unpassende Klammern setzt.
Wenn man eine Klammer vergisst, muss man wieder neu kompilieren.
Schauen wir uns an, wie dieser Fehler aussieht.
Auch das ist nicht besonders aussagekräftig.
Es sagt, dass es im Grunde eine Klammer vor der abschließenden geschweiften Klammer gibt, weil es nicht weiß, dass
es denkt, dass diese rechte Klammer vielleicht irgendwo hier unten enden wird.
Sie kann Ihnen nicht immer genau sagen, was los ist.
Daher sind Klammern und fehlende geschweifte Klammern manchmal nicht so anschaulich.
Aber wenn Sie etwas wie ein fehlendes Semikolon haben, ist das ziemlich einfach.
Der Kompilierfehler sagt Ihnen genau, was los ist.
Das erwartete Semikolon vor der Rückgabe weist Sie sogar darauf hin, wo Sie das Semikolon setzen sollen.
Sie können also darauf doppelklicken, ein Semikolon einfügen, wenn Sie ein Anführungszeichen vermissen, und neu kompilieren.
Richtig?
Sie sehen nun etwas, das im Grunde genommen fehlt, ein abschließendes Anführungszeichen.
Und wieder zeigt es Ihnen an, wo das erste Zitat vorkommt, und es zeigt Ihnen mehrere Fehler
an, obwohl Sie eigentlich nur einen haben.
Sie hatten also das doppelte Anführungszeichen, und Sie waren startklar.
Nun, diese main sagt, dass Sie einen int zurückgeben müssen.
Was wäre, wenn Sie tatsächlich versuchen würden, etwas wie inside innerhalb von Anführungszeichen zurückzugeben?
Auch hier folgen Sie nicht der Struktur der Sprache, und sie sagt Ihnen, dass Sie im Grunde einen Zeichenzeiger
von einem Funktionstyp zurückgeben.
Auch hier gilt, dass diese Kompilierfehler für Sie im Moment vielleicht keinen Sinn ergeben, aber wenn Sie mehr
und mehr Code schreiben, werden sie immer mehr Sinn ergeben.
Aber es geht nur darum, dieser Struktur zu folgen.
Wenn man nun versucht, Dinge zu tun, die zwar syntaktisch sinnvoll sind, aber die Bedeutung ist nicht korrekt.
Nehmen wir zum Beispiel an, dass wir ein F drucken und dann versuchen, eine arithmetische Operation wie die Division durch acht
oder die Division durch sieben durchzuführen.
Wir speichern es und kompilieren es, und jetzt sehen wir einen semantischen Fehler, bei dem wir ein Divisionssymbol nach den doppelten Anführungszeichen
haben.
Sie wissen, wo es eigentlich erwartet wurde Semikolon C Hauptsächlich werden wir Syntaxfehler, semantische Fehler finden.
Die Bedeutung des Codes hat in der Regel mit Logik zu tun.
Nicht gefunden, wie viel semantische Fehler passieren mehr in einer Sprache wie C plus plus, wenn Sie mit sind.
Objekte.
Halten Sie also Ausschau nach Syntaxfehlern des Compilers.
Allgemeine Dinge Rechtschreibfehler falsche Verwendung von.
Schlüsselwörter, die die Klammern nicht abschließen, wenn Sie mit den Codeblöcken beginnen, wenn Sie keinen
End- und Anfangsblock haben, und Sie können mehrere Fehler haben, richtig?
Sagen wir also, wir haben Hello world.
Es fehlt ein Semikolon.
Wir geben eine Zeichenkette zurück.
Uns fehlt eine Klammer, und wir bauen sie.
Und dies ist ein eher kleines Programm.
Aber wenn wir jetzt versuchen, es zu kompilieren, treten mehrere Fehler auf, richtig?
Zwei Fehler.
Und es ist irgendwie schwierig, wo soll ich anfangen?
Normalerweise beheben Sie den ersten Fehler, denn manchmal kann ein Fehler mehrere Fehler verursachen.
Sie sollten sich also immer den Compilerfehler ganz oben ansehen und diesen zuerst beheben.
Sie wollen also das Problem in Zeile 5 beheben, richtig?
Und dann möchten Sie vielleicht die Zeile sechs danach korrigieren und neu kompilieren und dann vielleicht korrigieren.
Und jetzt steht da Jason.
Man kann also sagen: Gib Null zurück, aber behebe immer erst diesen ersten Fehler, bevor du die nachfolgenden Fehler behebst,
denn einer kann den anderen verursachen.
Übrigens werden wir in unserem Code immer Fehler haben.
Auch die erfahrensten Programmierer werden Syntaxfehler machen.
Und so kommt es häufig zu Fehlern.
Es ist wirklich wichtig, die Meldungen des Compilers zu verstehen, damit Sie wissen, wie Sie sie
korrigieren können.
Und auch das wird sich in der Praxis zeigen.
Wir werden in zukünftigen Videos mehr über Compiler und gängige Compiler sprechen, aber versuchen Sie einfach sicherzustellen,
dass Sie die Struktur der Sprache verfolgen, während Sie sie lernen, die syntaktischen Sprachen und so weiter.
In den nächsten Lektionen werden wir darüber sprechen, wie wir verschiedene Arten von Fehlern haben können.
Ich habe Logikfehler erwähnt.
Wir können auch ein wenig über Warnungen sprechen.
Wir werden auch über Linker-Fehler und Laufzeitfehler sprechen.
Ich danke Ihnen.