C++

#line und #undef

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Manipulationen der Zeilennummer bei Warnings/Errors bzw. die Neudefinition von Makros zeigt Ihnen der Trainer in diesem Film.

Transkript

Ich möchte Ihnen jetzt nochmal zwei seltenere Präprozessor-Befehle zeigen, einmal den "line"-Befehl, das ist dieser Befehl: "#line", Zeilenummer kommt dahinter und ein Dateiname kann ein beliebiger Name sein. Und das andere ist der "undef"-Befehl, damit definiere ich ungeschehen sozusagen ein vorher gemachtes "define". Also, wenn ich hier "XXX" definiere, mit "undef" ist es danach weg. Dazwischen gilt es natürlich noch. Ja, das Ganze ist noch nicht vollständig. Ich habe hier vorne noch ein Makro definiert, das heißt "ASSERT" von "condition", Bedingung heißt "condition". Wenn nicht "condition", dann mit "printf" ausgeben, eine Zeilennummer und der Dateiname, das habe ich hier jetzt mal mit den klassischen Zielbefehlen gemacht "__LINE__" und "__FILE__" Da kommt man leicht durcheinander. Gibt man hier aus und dann gibt es hier noch eine Besonderheit, wenn Sie mal so ein "define" über mehrere Zeilen brauchen, kann man hier mit dem "Backslash" (\) einfach die Zeilen hier umbrechen und hier beliebig weiterschreiben, sonst ist es eine Riesenschlange hier, in einer Zeile hat man eine riesige Zeile, das ist sehr unübersichtlich, so wird das soch etwas übersichtlicher. Gut, hier habe ich jetzt meine Definitionen gemacht und jetzt gehen wir mal hier ins Hauptprogramm, da gebe ich jetzt hier einfach mal die MSC-Version, Microsoft-Copiler-Version aus, eine Zeilennummer, dann machen wir unseren Assert, "false", der sollte also zutreffen. Sowas kann man zum Beispiel bei Fehlermeldungen machen, man könnte hier auch abbrechen das Programm, wenn man will. Es ist einfach nur ein Makro. Und hier fragen wir mit "ifdef" das "XXX" ab, was ich hier oben definiert habe. Und Sie sehen schon, das ist grau, also wird das hier gar nicht durchlaufen, sondern der geht Ihnen in den "else"-Pfad rein und gibt hier "Ende" aus. Und wir starten das Ganze mal und dann zeige ich Ihnen nochmal, was das "Line" eigentlich macht. Hier krieg ich meine Zeilennummer: test1500 1008. Das ist die Zeilennummer und hier ist "assertion error" 1009 Mit "myprog.c", das ist das Besondere, dass hier trotz des kompletten Pfads, ein Dateiname ausgegeben wird, den wir eigentlich so gar nicht haben. Denn unsere Datei heißt hier "beispiellineundef.cpp". Wenn ich das "line" hier wegnehme, das MSC-Version ist die Version vom Microsoft-Compiler, wenn ich das jetzt hier mal wegnehme, mit Kommentarzeichen raus, sowas geht ja bei Makros auch, dann wird das nicht aufgerufen, dann sehen Sie, jetzt bin ich in Zeile 18 und hier habe ich die Zeile 19. Natürlich auch hier, dadurch dass das "line" nicht mehr da ist, kriege ich jetzt den Original-Dateinamen. Also, kleine, trickige Geschichte, wenn man hier mit diesen "sharp line" arbeitet. Das ist manchmal zum Debuggen ganz hilfreich, bei großen Programmen kann man die ein bisschen unterteilen. Zum Suchen der Zeilennummer ist es natürlich nicht so hilfreich, weil die Zeilennummer eines Fehlers zum Beispiel ja dann anders ausgegeben wird, als sie in Wirklichkeit ist.

C++

Machen Sie sich mit den einfachen Grundlagen zu C++ vertraut und lernen Sie anhand zahlreicher Übungs- und Codebeispiele die Klassenkonzepte, Prozeduren und Funktionen kennen.

9 Std. 3 min (143 Videos)
Derzeit sind keine Feedbacks vorhanden...

Video-Training auf DVD mit Bonusmagazin

+ Tutorial to go: Mit Videos für iPod, iPhone & Co.

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!