[Playlisten] [Impressum und Datenschutzerklärung]

04.04 C-Compiler, Fehler, Warnungen


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

zurErinnerung der Kompilationsprozessdas wirklich großartig an der Kombinationsprozessin Cund C plus plus Esser genauso?? man istin den beiden Sprachen leider sehr damitbeschäftigt was denn so hinter den Kulissen sonst passieren solltedeshalb so ausführlichhat sie Staatenmitsowieso Punkt zähe Dateien ?? in C plus plus ?? nach hat sie BP Dateien Punkt CPP-Dateienjede CPP Datei wird erst mal durch den Präprozessorgeschicktwas wieder im Prinzip eine C Datei liefert die wird zwar zwar gar nicht gespeicherthabensondern sofort weiterverarbeitet?? PräprozessorProzessor das habe ichletztes Mal ausführlich erzählt das ?? der Prozessor macht insbesondere sehen sie den beiden Cloudhabenentnimmt eine andere Datei lädt ?? dazuHeader DateienPunkt Hwerden dazu geladenund einfach in den Ergebnissen in die Ergebnisseite eingebautdirekt rein kopiertund das andere was sie gesehen haben damit die feindass ich mirMarkus Bauer die dann automatisch gesucht und ersetzt werden bevor das überhauptin den eigentlichen Compiler gehthat in der Präprozessor dran war kommt der eigentliche Compilerderproduziert etwas was man ob sie was man Objektdateiennenntweil daObjekte drin stehennämlich einfach festgelegte Speicherbereichelassen da die Objekteanund danach kommt der linkemaldas Netz mal auf derKder eine ausführbareDatei bautunter Windows wäre das typischerweisePunkt Echse auf einen Systemandersals auf was hier auf dem MSP vierunddreißig landet ist er nicht Punkt Excel sondern irgendwas anderesinProzess und Compiler treten für jede Akte für jede Zieldatei in Aktiondie nächste C Datei habenwir daraus die nächsteObjektdateidensehr vieleund der Linker bindet natürlich das alles zusammen in ein und dieselbe Excel Datei das System ist der Job des Linkerdiesen als Objekt kurzwird man noch eine hinwerdendiese ganzen Objekt kurz zusammen zu bindenPunkt sie als jede Zieldatei wird einzelne den Präprozessor geschickteinzeln kompiliertund dann geht der ganze Song zum Linker daraustypischerweiseeine einzige Datei bautam?? kann sein das man noch andere Dateien zur Laufzeit dazu nimmtder Linker kann schon andere Bibliothekendazu nehmenLips soll ich schreiben Lipsan der Hypotheken kann der Linker noch dazu nehme ??in die Details ?? dreiamPetersdom als Übersicht ?? Prozessor ?? schon vorgeführt mit Glut und die feinuns mit FN der Franz auch schon gesehen und Ent istimmer das doppelte Kompilieren verhindern kann?? jetzt etwas weiter zählen zum Compilerder wird eilig nur da spannend wenn erFehlermeldunghatangenommendass wir uns angucken was lese Komma dass der Compiler den ganzen Tag tutumwenn sie irgend einen Unsinn Zapfen sowas wie insVergessen variabel ans Schreiben in gleich NullPunkt dann machen Bekanntschaft mit dem Compilerunddannan der Stellepower Warning Sie ssie plus plus Compilermehr Kinder vor explizit in in der die Feierein identifizierbarsagen?? einen Namen vermisst hier Einnahmenaus ihnen so mitteiltwarenschon gesagt Fehlerin den ?? Prozess führen dazu dass keine ausführbare Datei erzeugt wirdwahrscheinlich die ausführbare Datei vom letzten Mal noch irgendwo rumfliegt?? zumindest keine neue ausführbare Datei erzeugt wird das hier wäreein Fehlersie haben nichts was sie dann eine damit anfangen können mit dem kombiniert wirdnunderCompiler produziert nicht nur Fehler der produziert auch sehr gerne Warnungenin die sowas haben?? und Variable habenin?? gleichzweiundvierzigvon mir aus wenn sie prüfen wollen ob die Variable Agleich dreizehn ist und sie hoffen dass so getan zu habenimwas das Problemsich damit ob A gleich dreizehn istupsokay es wird am Anfang gar nicht auf Fragen mal denKomweilerWeise der Verhältnissedavon hälter zwei Warnungen und gleich zwei WarnungeneinerWarnung eins lustigerweise der umgekehrten Reihenfolgewar die erste Warnung hier die Variable Awird auf zwei vierzig jetzt aber niemals benutztokaydas es schon überraschend den ich hoffe doch eigentlich sie da benutzt zu habenaberinteressanterweisewird sie nämlich nicht benutztnächste Warnungan den Vergleichs nicht mit einem gleich in den Zielsprachensondern mit doppelten Gleichnissesprachendeswegen der Fehlerwenn sie einBleischreibenist das die Zuweisungdie Zahl dreizehn wird A zugewiesenwenn sie vergleichen wollen in den Sprachen mit doppelterwie größer gleich kleiner gleich dasist hoffe ich dann dieseAnalogie klar wenn sie größer gleich schreiben?? sowieso zwei Zeichenund den Vergleichauf Gleichheit mit gleich gleich in den zehn Sprachenbisschengewöhnungsbedürftigist ein Vergleich für die Zuweisung des Doppelte gleich für den Vergleich auf Gleichheitund sie sind netterweisedas tun die meisten C-Compilernetterweise war der unswarendas jedoch wohl vielleichtgleich gleich gemeint hätten mehr Spiel entsendetalso achten Sie auf die Warnungen die sind durchausernst zu nehmen so nun funktioniert und es gibt auch keine Warnung mehr das sich aber nicht nutzen würdedas normalerweiseso tun in B gleichdreizehndann gibt's die Warnung E wird nicht verwendetdas ist kein Fehler aber es sieht irgendwie falsch ausund es ?? produzieren die vom ?? typischerweiseWarnungKomma vorgeführtWeber Stick Leerzeichen Referenzich mache mit Variablen wie nichts mehrund das ist schlechtes Zeichen deshalb gibt es eine Warnung an der Stelleanals achten Sie auf die Warnungenvom Compiler zeigt die letzteden letzten nochwenn sievorzeitigein Return einbauen solltenauf diese Weise müsste der Compiler das auch merken??okay es gibt eine zweite Warnung wie sie hier sehen ??Statement ist an Visualdieser Tage und wird niemals erreichtweil ich ja vorher schonmit der Zahl dreizehnals Ergebnis aus der Funktion rausgehenwenn dass sie ausgeführt wirdvariable Arbeit eingerichtet sein wird sie gestellt wie wird ein Licht auf dreizehn gestellt ?? ich gebe dreizehn zurück und verlasse die Funktiondieses Tier und mit niemals erreichtsie der Compilerund sagt uns das ist zwar nicht falsch aber sieht komisch aus Statements an Witz übereineminsofern achten Sie auf die Warnungender Compiler aus Punktdie sind typischerweisesehr hilfreichund?? bei professionellen Programmierenversucht man es so hinzukriegendas tatsächlich niemals eine einzige Warnung kommt das tatsächlichähm keine Ahnungzwanzig Dateien zwanzig C Dateien durch kombinieren können ohne eine einzige Warnungamallein schondamit mansowas denn sehen kann wenn sieerklärtes gibt Warnungen die sind bisschenungeschickt mich zum Beispiel jene Endlosschleifereingehe wenn ich hier hätte erfreiePropellerneu zuder Formzuund damit er das kannmit C das kannder Beschluss ganz ab Werk damit sie das kann sie nur sagen institutbarenStandardpoolSDDPoolist für die Branchenvariablendie Standarddefinitionensind es die Burgentweder tunwir sowas hätten und in der while-Schleife tun sie dann irgendwasam?? gucken sichdie beiden im Voraus nicht zu viele Warnung produziertund MacBeistrich wer auch nur Warnung genau wie eben StatementsStatement ist an Witz über nach der Endlosschleifedas auch sehr schön nach der Endlosschleife was ist nach der Endlosschleife nicht es nach Endlosschleife über die Endlosschleife niemals verlassen ?? hinter der Endlosschleifesteht das Returnnatürlich niemals erreichtweil die Endlosschleifeeine Endlosschleife istwas uns jeder Compiler netterweise als Warnung mitteiltPunkt man würde bei professionellen Programmieren versuchen auch diese Warnung weg zu kriegendas einfachsteimmer diese Warnung weglegen kann ist das Elternhaus zu kommentierenund dann ist sie weg andas sieht falsch ausweil ich sage meine Funktionsmailliefert doch eine ganze Zahl zurückdiese Funktion ?? liefert keine ganze Zahl zurück in C ist das erlaubtder wird dann irgendein Blödsinn zurück liefern wenn er das tut andererseitsaber so erreichtdas sicherlich keine Warnung kommt wird wahrscheinlich sodann hinschreibenist es schöner ohne Warnung auch wenn es so aussieht als ob ich vergessen hätte ein Wert zurück zu liefernaber ich würde sowieso nie ein Wert zurück liefern weil diese Funktion niemals beendet wirddas zumCompiler