[Playlisten] [Impressum und Datenschutzerklärung]

03A.3 Programmierbeispiel Teil 3, Include-Guards, Präprozessor


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

alsozur Wiederholung Komma wie derKompilationsprozessabläuftkompilieren ist mehr als nur den Banken Compilerstartmehrmals insgesamtnimmt ?? soll sagen ein Programm zu bauen ist mir also den Compiler zu starten also es gibt drei Schritte in zehnmit denen man leider auchjeweils einzelne Bekanntschaft macht in modernen Sprachen ist das allesunter der Motorhaube verstecktes gibt einmal den Präprozessorunddann gibt es den echten Compilerund dann gibt es den Linkerdiemeiste Bekanntschaft macht man damit einfach durch Fehlermeldungenmit den bei mir zumindest Compiler und Linker die sehen siein Fehlermeldungenauftauchenund den Präprozessorsind sie insbesonderemit den Include Guardsdie Karte noch mal erzählen willbevor ich das erzähle muss nochmals sehen was derProzess überhaupt macht sie können zum Beispielsagenähm definiere mir doch maldas ich die nächstePartiturdie tu schreibe statt zweiundvierzigauf diese Weise das eine Anweisung an den Präprozessorbevor irgendwas anderes passiert im Programmmit der Präprozessordurchgehen und überall vor die Tour durch die zwoundvierzig ersetzen zwanzigsterZimmer ausprobieren wenn wir in Schreibernwar ich in der Datei dafür ungeschickt sodass man am Hinterteil machendas hier in der Maine Datei habenund schreiben hier was rein von wegen ??hierin A ist gleichFoto tunwir die letztlich die zwoundvierzigEinsätzenjemand weg Punkt hinsetzenund gucken was passiertohne Optimierung dann sollten auch was sehensollte das wirklich tun auch wenn's blödsinnig istwar der Wert von Arnim benutzt wirdjetztzu sehen können was da passiertokay und Ar steht auf zwoundvierzigWasser das billigste was man mit dem Präprozessor machen kann können sagenüberall wo jetzt in Textformdu steht ersetze bitte die Zahl zweiundvierzigwerdendiese Namen schreibt man gerne alles in Großbuchstabenhat sich eingebürgert könnte man anders machen Komma hat sich so eingebürgertdas hier sollte man bitte nicht Mehrheit könnte natürlich hingehen und alle ihre Konstanten im Programmtext sodann raus ziehen hat man früher gemacht sollte man heute nicht mehr machenPunkt heute kann man das mit Const schreiben Constins Vordiplom gleich zweiundvierzigKonzept Skript vor wenn ich nicht geradenoch weiter ausbreiten?? die einzige Stelle wo sie sowas hier sehen sollten heute nur noch ?? ist am Anfang von Headerdateiendie sogenannten Include Guardsdie hier fehlendannvielleicht bei der StandardpoolanguckenStandardbrüdersind interessierte fein StandardpoolUnterstrich Standard Punkt die dürfen auch ?? Unterstrich nebenbei das zum System gehört das Standardburgan der Stelle sehen sie noch den Prozessor ganz dick in Aktionalles dieses hiermit Doppelkreuz in Anweisungenan den Präprozessorbevorüberhaupt irgendwas echt übersetzt wirdfängt die Maschine an zu suchen und zu ersetzendas ist die einfachste Art zu suchen und zu ersetzenund hier Include Doppelkreuz Sehen sieist eben die Anweisung an die Maschinenicht diese Datei so zu nehmen wie sie da ist sondern erst malaus dem Projektverzeichnisdeshalb die einfachen Anführungszeichenaus dem Projektverzeichnishier die Datei thermische Haar zu nehmenhier vorneeinzubettenkomplett einzulesen davon einzubetten und aus dem System zu der Datei Standard Buddha zu nehmenspitze Klammer aufaus dem Systemist und ihr vorne komplett einzulesenauch das eine Anwendung an den Anweisung an den Präprozessordas ist die die sie am häufigsten sind Doppelkreuz in Cloudund dann wenn sie eigene Headerdateien schreiben sehen Sie auch noch ein die fein bitte nicht Konstanten zu bauen das sollte man heute nicht mehr tun das isteher unschönaus diversen gründlichen Ent ein Video erklärt habeKommawenn ich das hier mache mit dem in Cloudlaufe ich irgendwann in ein Problem sie sehen das sich hier für dieses Problemchentrug brauchedeshalb ?? studiere ich Standardhaarohne dass dann der Bund habe ist der nichts von zuvierzigwird Megandannin meiner Tempel ?? AHAbrauche ich aber auch Standardpoolhaarum hierwohl sagen zu können diese eine Funktion mit der ich die rote oder die grüne Leuchtdiode an schaltet die will ja auch schon ?? Jan eine Formation habenauch hier brauche ich bool und deshalb brauche ich auch hier schon in der Header-Dateistanden wohl Haardasgemeinte ich ganz dreist Sagenswerdensja eigentlich hier überflüssig und das wird sogar funktionierenkönnen sie rausnehmenund das trotzdembauen das Programmkeine Fehler keine one X Firmen-undwarum wir das trotzdem sind sie dassich genau anguckt was hier passiert in der Tat interessantHbisher schon Standard ?? reingeholtdas heißt es ist es rechts dann hier in Mendenbekannt ?? Richard Rogers Anatol Harder muss ich eigentlich immer getrennt habenPunkt das isttotal unübersichtlichKomma sagt man immer seiner Buddha doch hieraus das was mich zweimal habenwer weiß schon ob der BGH wirklich Standard Polarbrauchter nach ein ernsthaften Programm stehen hier obensieben acht neun zehn ?? sogarzwei Dutzend verschiedene in Cruzund nachher wissen sie einfach nicht mehr welche Datei welche andere jeweils gebrauchte ??garantiert hat man welche doppeltPunkt es gibt auch Fälle indem man es praktisch gar nicht vermeiden kann mehrerehier doppelt einzubauen?? nach den Billigstrukturdes Projekts istder Ärger auf den das ganze stößt ist dannzum Schluss studieren Sie die mir die dieselbe Datei wie gestern hat Burkhard mehrfacheinmal hier in thermischer Haarwird sie inkludiert und einmal in mein CBC inkludiertbei dieser Standard wohlhabenderstehtmacht das wahrscheinlich keinen großen Unterschied misst man Detail reingucken je komplizierter diese Header-Datei werden bestimmte Sachen auftauchenin den Header Dateien geht das nicht mehr ?? kann man die nicht mehr zweimal inkludierenwas dem Prinzip der passiert sowas das sicher die Optikdass sie die mehrfachineinander einbauenundwenn in dieser Standard wohl Haardateiwieder sagen Neustrukturengebaut werden hatten wir noch nichteine neue Struktur gebaut ?? Ähnliches produzierte Datentypen eingeführt werden geht das nicht ?? gibt das was auf die Finger wenn die mehrfach eingeführt werdenund darauf in den das Problem läuft man dannwenn man nicht sicherstelltdass dieses Ding nur einmallesen wird was in der Standardhakendrin stehtdas könnte jetzt schon sehen was der Trick ist und das zu verhindern dass die zweimal eingebunden wird hier stehtHerrnHäfner die Feinstandard wurde feinster Nordpol und ganz am Ende ?? Uppsalasteht ein NT ??das sind die sogenannten Include Guardsdie stellen sicherdass eine Dateinur einmal eingebundenwerden kannhässliches war für die thermische Haar vorwas ich da rein schreibe dass diese Datei garantiert nur einmal eingebunden wird und das beim zweiten Mal übersprungen wird dafür verwendet man typischerweisedieses die feinnämlich folgendesich definierewenn der?? Prozessorhier an dieser Stelle ankommt definiereich mireinSymbol in bestemcharharten Gletscherhaar sodefiniere ich dieses Symboldas Ding hier verarbeitetwird weiß danachder Präprozessores gibt dieses Symbol ?? ?? char sie können auch sagendie Symbolsoll über ?? soll über zwanzig bedeuten aber sie können noch ein Versagen definierenbedeutet eben gar nichtswenn es es meist Arbeit und sich nicht einer was hinter zu schreibenund jetzt benutzt sich die Kenntnis ob das schon definiert ist oder nichtum den folgende Tal einzublendenoder auszudenkenbeim aller ersten Durchgangist das Ding hier noch nicht definiertdann möchte ich diesen Teil einblendenund danachfalls diese Datei dem Patch aha noch mal eingebunden wird ist es definiertund ich möchte den Teil ausblendenund dafür gibt's dann einF NorddefenderFE Flotte Feindder mit Scharin der Form und am Ende muss dann dasabgeschlossenwerden muss wissen wurden wieder aufhören sollEndekönnte ?? auch mit rein nehmen das bringt gar nicht dass das ganz außen steht?? sogar noch Zeitsokönnte das Baumso was jetzt passiert ist folgendeswenn der Präprozessorzum ersten Mal thermischer Haar siehtguckt er nachob dieser Name ihr groß dem Pyjamadefiniert ist oder nicht wir haben noch nicht definiert also ist dieser Name nicht definiertist der Verein das heißtetwa die fein das heißt er macht jetzt weiterfür das innen drin aufKlausdefiniert diesen Namenerledigt meine ganzenDeklarationenund Endewenn derPräprozessor diese Dateien nochmals siehtwas passiert ?? hier vornedann ist das hier schon definierten Pritsche Haar vom ersten Durchgangder springt sofort und zum Ende von der das Ganze nicht gesehendass es eine fürchterlichartigeTechnik die sie aber in C und C plus plusvon morgens bis abends sehen in den modernen Sprachen der nicht mehran das hängt eben damit zusammen dass dieser Präprozessorvon Ceine sehr billige Suchen und Ersetzen Maschine istbeziehungsweise?? Flut eine Einsätzen Maschine ließ die Datei aus und setzt alles aus der Datei ihr eindeshalb auch man diesendiese unsäglichen Include Guardsam auf modernen Systemensammeln sich die SprachenCompiler soll ich sagen ?? Compiler selbst zusammen was sie brauchenähminApplesObjective-Cgibt es statt in Cloud ein Importund Import heißt dann tatsächlich macht das nur ein einziges Mal Importin der Sprache heißt das natürlich nur ein einziges Mal einbinden nicht zum zweiten Mal einbindenzu Verwirrung als Import in klarer was völlig andershierin C und in C plus plus muss man leider damit leben zu unterziehen undder BGH auch soweit fertig so sieht das dann aberprofessioneller als auch sie könne noch ?? Standard Punkt vergleichenSie den außenrum steht das ich noch die Feinddie fein und am Ende steht NT ??einigeC-Compilerwenn sie jemals Masche mit dem vonMicrosoftarbeiten sollten einige C-Compiler?? können stattdessen auch DagmarMagma wohnst das ist aber nicht standardisiertblöderweisedas wäre die schöne Lösung gewesen dass mandenPräprozessor genauer gesagt ?? direkt sagen kann diese Datei einmal einbinden und sonst nie wiederleider ist das nicht Standard geworden bisherdeshalb findet man an allen Ecken endendie sich in Stuttgartdas was um sich einmal anzuguckendamit es verstanden haben ist es relativ einfachzu ziemlichmonströse Geschichte aus der Vergangenheitfiel leider nichtseinDing leider nicht überwunden worden ist in den ganzen Jahrenalsovorsichtig dieser Name der Wäschehaar darf in diesem Projekt nur ein einziges Mal vorkommen wenn der Innern einer Datei auch gesetzt wirdkann es sein dass diese Dateien niemalsin den Compiler rein kommtbei vielen schon definiert ist das Symbolund dass sie übersprungen wird aber auch als irgend ein Namensschema?? Nachahmungsschemawie man diese Namen generiert?? das einfachste ist man in den Namen der Datei in Großbuchstaben Unterstrich Hdenn dieser Name sollte eindeutig seinandere Möglichkeiten sind hier irgendwelcheeindeutigen Zahl dahinter zu setzen dies garantiert nicht wiedergibt?? ich denke das ist dasübliche an der Stelleaus dem Dateinamen Einnahmen für die ?? generieren