C für Dummies. Dan Gookin
Чтение книги онлайн.

Читать онлайн книгу C für Dummies - Dan Gookin страница 23

Название: C für Dummies

Автор: Dan Gookin

Издательство: John Wiley & Sons Limited

Жанр: Программы

Серия:

isbn: 9783527833382

isbn:

СКАЧАТЬ 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.

       Das fehlerhafte Programm reparieren

      Um das Ganze wieder geradezubiegen, müssen wir das Programm reparieren. Dazu muss der Quelltext editiert, gespeichert und neu kompiliert werden.

       printf("Dieses Programm arbeitet fehlerfrei\n");

      Die Zeile sollte immer noch eingerückt sein. Ich habe auch gleich noch den Text geändert, zusätzlich zum fehlenden Semikolon am Zeilenende.

      Speichern Sie Error.c und kompilieren Sie das Programm neu. Nun sollte alles problemlos laufen. Falls nicht, wissen Sie ja jetzt, wie man mit Fehlern umgeht.

      Sie können nun das Programm starten und die Ausgabe bewundern:

       Dieses Programm arbeitet fehlerfrei!

      Ich kann Ihnen nicht immer sagen, wo die Fehler in Ihrem Programm stecken. Error.c ist das einzige Programm im Buch, das einen absichtlichen Fehler enthält. Wenn Sie auf einen Fehler treffen, sollten Sie die Fehlermeldung untersuchen, um den Ort und Grund des Fehlers einzukreisen. Danach überprüfen Sie den eingetippten Quelltext anhand des im Buch angegebenen Quelltextes. Auf diese Weise finden Sie, was falsch ist. Aber wenn Sie ganz allein unterwegs sind und eigene Programme schreiben, dann hilft Ihnen wirklich nur die Fehlermeldung bei der Jagd nach dem Übeltäter.

      Damit müssen Sie sich nicht belasten

      Es gibt zwei Arten von Fehlern: Fehler und Warnungen. Manche Compiler nennen Fehler auch kritische Fehler.

      Eine Warnung bedeutet so viel wie »Also appetitlich siehtʼs ja nicht gerade aus, aber ich serviere es trotzdem«. Wahrscheinlich wird Ihr Programm laufen, aber eventuell nicht ganz so wie gewünscht. Oder vielleicht ist der Compiler auch nur besonders sorgfältig. Bei den meisten Compilern kann man einige der übergenauen Warnungen ausschalten.

      Der Fehler, oder auch kritische Fehler, bedeutet: »Herrscher über meinen Speicher, du hast etwas so Kriminelles getan, ich kann es nicht verantworten, dieses Programm laufen zu lassen«. Vielleicht ist das ein bisschen übertrieben. Letztlich ist der Compiler aber nicht in der Lage, Ihre Anweisungen zu verstehen.

       Die fürchterlichen Linkerfehler

      Beenden Sie das Error.c-Projekt noch nicht. Falls Sie zu schnell waren, öffnen Sie die Quelltextdatei wieder.

      Ändern Sie die dritte Zeile im Quelltext, sodass sie wie folgt aussieht:

       int Main()

      Speichern Sie die Datei und kompilieren Sie das Programm neu.

      Es gibt einen Fehler! Schauen Sie sich an, wie eine mögliche Ausgabe aussehen könnte:

       undefined reference to 'WinMain' error: ld returned 1 exit status

       Es ist schwieriger, den Fehler zu finden, weil bei Linkerfehlern keine Zeilennummern angegeben werden.

       Es ist schwieriger, Linkerfehler zu akzeptieren als Compilerfehler, wo doch der Compiler automatisch für Sie linkt. Aber es passiert dennoch. Und anders als beim Compiler sind hier alle Fehler »kritisch«.

       Linkerfehler beheben

      Die Aufgabe des Linkers ist es, das Programm aus Einzelteilen zusammenzusetzen. Wenn er etwas findet, das er nicht erkennt, denkt er: »He, das könnte etwas aus einem anderen Programmteil sein«. Daher rutscht der Fehler zunächst beim Compiler durch. Aber wenn der Linker nachsieht, wo das unbekannte Wort definiert ist, hält er dann seine Fehlerflagge mit aller Gewalt hoch, wenn er nichts findet.

      Um Linkerfehler zu beheben, folgen Sie den gleichen Schritten wie bei der Behebung von Compilerfehlern. Mit der Fehlermeldung als Führer suchen Sie die verursachende Zeile im Quelltext. Dann beheben Sie den Tippfehler oder den Fehler, um das Programm zu korrigieren.

      Ändern Sie also die Zeile mit dem Main wie folgt:

       int main()

      Speichern Sie die Änderung und erzeugen Sie das Programm neu. Nun sollte kein Fehler mehr angezeigt werden.

      СКАЧАТЬ