Читать книгу C für Dummies - Dan Gookin - Страница 54
Junge, was ʼn Fehler!
ОглавлениеFehler in Error.c
! Tauchalarm! Schockzustand!
Okay, wir habenʼs ja erwartet. (Um genau zu sein: Vielleicht haben Sie den Fehler ja schon vorher ungewollt erzeugt.) \Abhängig vom verwendeten Compiler wird in irgendeiner Form folgender Fehler erscheinen:
\Quelltexte\kap02\error.c|5|error: expected ';' before 'return'|
Es können auch noch andere Meldungen angezeigt werden, aber die Zeile 5 wird irgendwo in der Meldung so oder so ähnlich vorkommen. Zudem zeigt eine integrierte Entwicklungsumgebung wie Code::Blocks an der fehlerhaften Zeile eine rote Markierung an, wie in Abbildung 2.1.
Abbildung 2.1: Hilfreich – die Zeile des Fehlers wird markiert
Bisher sieht die Fehlermeldung ziemlich rüde aus. Aber was ihr an Freundlichkeit fehlt, enthält sie dafür an Informationen. Egal, welchen Compiler Sie verwenden, Sie sollten in der Meldung folgende Informationen erhalten:
Das Programm, das den Fehler enthält: Error.c
Die Zeile, in der der Fehler steht, hier also Zeile 5 (aber trauen Sie der Angabe nicht zu sehr – der Fehler kann auch eine Zeile höher oder tiefer sein)
Der Typ des Fehlers, hier also ein Syntaxfehler (es fehlt etwas)
Der Ort des Fehlers, also vor return
Es mag nicht ganz klar sein, was falsch ist, aber man bekommt eine Menge Hinweise. Am wichtigsten die Zeilennummer:
…error.c(5):
Der Fehlertyp ist genauso wichtig. Ein Syntaxfehler bedeutet Tippfehler, in der Sprache C ist ein Semikolon ;
am Ende eines jeden Satzes notwendig, genauso wie Sie am Ende eines Satzes einen Punkt machen.
Die Lösung? Ändern Sie Ihren Quelltext und beseitigen Sie den Fehler, indem Sie in Error.c
in der Zeile 5 das fehlende ;
an das Ende der Zeile setzen.
Fehler sind nicht das Ende der Welt! Eher der Anfang.
Die Zeilennummer bezieht sich auf eine Zeile im Quelltext. Deswegen verwenden auch alle Texteditoren Zeilennummern, die auf dem Bildschirm irgendwo am oberen oder unteren Rand angezeigt werden. Diese Nummern stehen aber nicht im eigentlichen Quelltext.
In integrierten Entwicklungsumgebungen wird der Cursor in der Regel sogar auf die Stelle oder Zeile gesetzt, an beziehungsweise in der der Fehler zu finden ist – oder zumindest in die Nähe.
Die Zeilennummer ist nicht unbedingt exakt, der Fehler kann auch in einer vorigen oder einer Folgezeile sein. Aber die Angabe ist zumindest sehr nahe dran.
Andere beliebte Syntaxfehler außer dem vergessenen Semikolon sind fehlende Klammern, runde oder geschweifte, fehlende Anführungszeichen und überzählige Klammern.
Wahrscheinlich kommen Ihnen die Fehlermeldungen von Code::Blocks unverständlich vor, lassen Sie sich Zeit – Sie programmieren ja erst seit Kurzem. Nach einiger Zeit verstehen Sie Fehlermeldungen von Code::Blocks und dem GCC viel besser.
Sie können Fehlermeldungen in eine Suchmaschine eintippen und danach suchen – Sie werden viele Beispiele finden, die Ihnen erklären, was nicht klappt. Denn andere hatten das gleiche Problem oft zuvor.
Möglicherweise denken Sie sich nun: »Computer, wenn du schon weißt, wo der Fehler ist, dann mach ihn doch auch weg.« Aber Computer arbeiten nicht so; solche Schlussfolgerungen sind ihnen fremd. Das ist eben der Nachteil von »Mach, was ich sage«: Computer können keine Gedanken lesen, also müssen SIE präzise sein. Immerhin sind sie sehr kleinlich, wenn es darum geht, Fehler zu finden.