[Playlisten] [Impressum und Datenschutzerklärung]

04.03.1 Präprozessor, #include, #define


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

es geht los mit dem Präprozessorjetzt noch ein Eis in diese drei Schritte was sie tun Gruppe von den drei Schritten heute klappenauf jeden Fall der Präprozessorblieb Assessor das ist das erste was stattfindetaber ich baue mal ein Projekt deshalb Ichssinnvoll istdiese beiden Dateien hier aus dem Praktikumnämlich mal mit dazuin meinen WordPress finnischen findeLeerschritt meine Mail Dateiich probiere mal diese beiden Dateienmit den ?? die ServiceTreiberneben dem Hinterteil sinnvollerweisekönnten auch woanders stehen aber dass man übersichtlicher dass die einfach deine Stellen stehen neben der Minderzahlbei der sich eine zweite Zieldatei habe wie gesagtwenn die zweite Zieldatei kombiniert werden soll müssen sich hier dem Entwicklungssystemsagendas diese andere Zieldatei auch wirklich dazu gehörtalles wieder dein wir stehenübergibt einen Compilerso weit so gutin dieser Zeder teile ich ebendazu gebunden habein dieser Zieldateistehen ihr ein paar neue FunktionenInitialeismit einer Lokzurück zuund so weiteres wird schon ergibt mit diesem initial leistet herausimmer alle hieraus dich da rum fliegen hattegroßsollalsoandiese Funktion die hier drin stehenmöchte ich jetzt in meineranderen Zieldateiausführen ?? gesamte Situation jetzt ab zwei C Latein wie getrennt übersetzt werdenund nun möchte ich bitte in der ersten Zieldatei mitteilen dass es den so eine Funktion setze O two gibt und eine Funktion wird von Ministerienso weitergeht ich kann jetzt nicht einfachKomma denich kann es nicht einfache NCC Datei sagenhörendas aber tut irgendwashabenmir sechs hundert fünfzigund dann gebe?? nach internennull Unzen lang kein Fehlerdas kann ich jetzt nicht sagen weil wenn der C-Compiler diese Datei liestdiese Funktion unbekannt istsagte ist blöd der C-Compiler der Listendateifür Datei zurück ist Datei für Datei einjede für sich jede Zieldatei für sich übersetzt jede Zieldatei für sichund ?? die das so schreiben würdenhinter den ich jetzt aber tunich brauche eine Deklarationwieder maldie Definitionbrauche ich nicht die steht in der anderen Zieldateidie steht da aber ich brauche eine Deklarationversetzt Klammer zuich könnte jetzt einfach das hier nehmenund da reinkopierenund sagen pro dass es meine Deklarationund dann ist die Welt in Ordnungdann ist der Compiler das von um diese wieder von oben durchBeisetzung?? zu verwendenund der Linker mit einer Rate fällig die echte Funktion der einbauenan es natürlich blöd wenn ich jedes Mal das er reinschreiben mussund jetztkommt der Grund für das Institutdas in Cloudliest eineDatei ein Liter stetswieder ?? angegeben ist Servonull eins genannt?? Saint Cloud ließ diese Datei namens Servo null eins H einNetworkdes Mausklick kann ich gucken was denn drin stehtdiese Datei hier ist das ?? und da sind die Deklarationendrinnendeshalb die Header-Dateiich schreibe eine Datei mit den Deklarationenschreibe eine Datei mit meinen Deklarationnennen die sowieso Punkt Haarund bin in die ganz frech einfach da eindas ist eine Anweisung an den drei Prozesse dieses Include Zimmer eine Anweisungen Präprozessor diese derzeitige Welt steht auszulösenhier einzusetzen wortwörtlich darein zu kopierenalles aus der Datei wortwörtlich daran zu ihrenarmen Teufel möchte sagen von sich jemals was gesehen habe mit Java oder C Schaper gibt es einImportin Java und ein Musical sie schafft das komplett was anderes nicht irritieren lassenX und heißt wirklich diese Datei hier aufmachenund komplett rein kopierenan dieser Stelleunddasselbe passiert mit diesen anderen Dateien vorher schonund weil sie sehr wohl null eins H die am selbst geschriebene Datei weil das die Deklaration enthältsind an dieser Stelle meine Punktion deklariertund ich kann das so benutzen das nennt sich Header-Dateidas macht man typischerweiseman selbst das schreibtdas sie meine Funktion nicht selbst geschrieben hattetypischerweiseliefere ich nicht nur einfach die C Dateiin mein selbst geschriebenenFunktionen sondern ich liebe auch eine Haardateimit Deklarationendamit jemand der dieseFunktionenhier anwendetnicht die ganzen Deklarationenzu Fuß rein kopieren muss sondern einfach nur noch einen Blut machen kannvon derHeader-DateiHeader-Datei Waldiam Hetz an dem am Kopf der anderen Datei steht hier taucht oben eine sub Header-Datei dessenHeader-Datei Punkt ASHeader-Dateierdie Venedigs nicht aufgeführte Compiler kompiliert IC Lateinund während er die Cedateien kompiliertschlägt der Präprozessorzu und sagt auch ?? muss aber die komplette Haardatei rein kopiert werdenanBusiness gibt zwei Sorten an Institutes gibt einmal das Institut mit denAnführungszeichen untendamit meine ich Dateien die neben mein Projektdateienstehen Komma noch einstellen dass noch andere Sachen benutzt wird die können ja ?? kompletten Pfad angeben?? Blabla Blabla Blabla und den Vater in Angebenamtypischerweisesind das ja Dateien die neben den anderen Punkt C Punkt H Dateien im Projekt stehen mit den Anführungszeichenoder Gibson Dateien systemweitgelten StandardwohlistTeil des StandardsDartsdas System ein eigenes Verzeichnisin dem die ganzen Sachen abgespeichert sind und für das Verzeichnis verwendet man dann in spitzen Klammern also alles was Standard istmit den spitzen Klammernalles was zu Ihrem Projekt selbst gehört mit denArmenAnführungszeicheninKomma was daraus wird jetzt kann ich nämlich hier sagen Projectob Schadensüber Saisonarbeiter Übersetzer undÜbersetzer Auto Zufallanimmer mehr alles komplett annormalerweisevergisstvergisst der System Wasser Präprozessor machte sich sofort in Compiler geschickt was der Präprozessor machtaber um eine Tee zu kriegen was passiert Komma eine mal anguckenwas Apple Prozesse generiert hatte für dieses Zwischenergebniseinmal in eine Datei schreibtmeineMailsokay das versteckt sich dann jetzt also hier unterdie Bankistdas ist das in die Zwischenresultateaus dem PräprozessorGastrassemit dem Texteditor aufnicht interessiert an Minidas jetzt was der Präprozessor ausgemacht hatKomma was die Datei ursprünglich wardas die Zieldateieinen Präprozessor gehtPräprozessorliest jetzt dieses angerufene dreißig H ausjeder Spezialkramdrin was dieser Makrocontroller kannElise Standardpoolausfügt es ein ?? ist ja wohl null eins H ausführlicheseinstatt dieser drei Glut steht dann der echte Text und das müssen sie sie angucken könnenJustitiamonströs das Muster Anfang aus demelf hundert dreißig H seinda Blabla das es ihn entlangirgendwann müsse das mit dem Pool kommenbesser davon nicht viel überlebt von dem wohloffensichtlich seiner Buchhändlerwerdenund jetzt kommt's der Header den ich selbst eingebaut hatte dass hier die Deklarationsind eingruppiert aus der Header-Datei sind meine Kopie sind meine Deklarationenjetzt das Ding hier eingruppiertund da kommt das eigentlich Programmwenn was der Präprozessor gemacht hat Präprozessor das ganze mit monströsCode generiert diesein unserer für fünf Zeilentauchen zwar immer noch auf aber es gibt monströs fiel aus dem Kran der automatisch der jetzt rein kopiert worden ?? bis dahin ist als möglich rein kopiert worden das ist der Header mein eigener Include sie mit dem Header rein kopiert worden ist und da steht jetzt ganz mickrig am Ende das eigentliche Programmwas den C-Compiler jetzt zum Fraßgerichtist diese gesamte Dateimit allem möglichen was hier vorher alles definiert und deklariert worden istnundie erste Fehlermeldungdie sie vomPräprozessorkriegen es wahrscheinlich die dass sie sich vertippt haben ?? sang ?? gemeinsam ?? null sechs Punkt HaentfuSuchtversuch der Präprozessordiese Datei aufzumachenund darein zu kopierenund fällt dabei natürlich auf die Naseam?? über ihrGlaubensauswahlan das es eine Meldung vomPräprozessorin sich wundern warum mir der Compilerdes Anscheinssagt sie immer weil man den ?? Error weil Warning siebzig das was Compilernder Compiler ruft den Präprozessor aus deshalb kommt die Fehlermeldung dann offiziell hier vom Compiler war eigentlich der Präprozessor gesagt hallodie Datei sehr unseren sechs Punkt da kenne ich nichtdas ist das typische was ihnen vom Präprozessorals Problemvor die Füße geworfen wird erkennt ihn so eine Datei nicht wiederinkludierendemnächstwichtige Befehlbeim Präprozessorist etwas zu definierenkann zum Beispiel sagen die feindefinierevergessen und eine Konstantewas ihr Zeit habe ich in von Anzahl an Kanälen die gemessen wird's numberChannels und ich möchteklar sagen dass daswill ich möchte mich überall sechzehn Schreiben zum Beispiel für die Anzahl der Kanäle Anzahl an Meßkanälen zum Beispielsagt servus ?? Komma ich möchte nicht über sechzehn schreibensondernwas es nach Erweiterung durch zwei ?? dreißig ersetzen möchte ich dann ja was man dreißig schreiben können und überall sonst ein dreißig steht das sie wäre automatischesSuchen und Ersetzenambesten nach sowas habe ?? vor ?? indie keine Auto ?? die Kanalnummervon nullbis sechzehnnatürlich dann ab null angefangen das heißt ?? ich so schreibe Saarlouis fünfzehngehtnumberaufalsPlus und dann würde in diesem Ding was passierenwas will ich tunin der Formnunständig das ganze Programm der Nieren vor mit mit solchenerSymbolenstatt der Zahl sechzehnkann ich erstens sagen was denn die sechzehn bedeutet hat es war irgendwas mit der Anzahl an Kanälenund zweitens kann ich auf einen Schlag im ganzen Programmmit zwei dreißig Kanälen arbeiten in dem ich darum zwar dreißig schreibe dass man nicht die Idee ein automatisches Suchen und Ersetzen hiermit seit dem Präprozessormit diesem Designseit dem Präprozessordiesendiese Zeichenkette ja number Unterstrich auf Unterstrich Channels diese Zeichenkette bitte überall durch sechzehn ?? setzeneine Anweisung an den Präprozessor suchen und ersetzen ganz auf billige ArtAmt sehen wir schon wie die Präprozessoranweisungenaussehen Doppelkreuz irgendwas Doppelkreuz inProzess ??das ist dann was sind sie Compiler der echte C-Compiler dann gar nicht mehr siehtam die sind alleaus buchstabiert die ganzen Anweisungendasmuss jetzt noch mal übersetzt anguckendas heißtder Präprozessorwird jetzt nicht nur oben diese Institut Dateienreinkopierenwie die Header-Datei schon ein Kopieren der Präprozessor wird auch hier offensichtlich zu ?? eingesetzt habenist die fein ist ein Weg und ihr steht dann hoffentlich ausdrücklich sechzehnPunkt dass Anwohner das ?? war bisin dieTexteditor aufganz am Ende irgendwoKommadass die Gäste sich sechzehnmanischeinfach automatisch sucht und ersetztgesucht und ersetztanPunktklickt aberdas kann man weitertreibenman kann Makros definierenwenn ich zum Beispiel häufigerZahlen verlieren muss für die auf den Gedanken kommeneinMakroäußerst anzubauenwas so funktioniertSoftwareEssen nimmt eine Zahl X oder was auch immer da steht sie mir gleich das ist nämlich heikelist nimmt dieses X und ersetzt es durch Xmal Xdas wäre ein Makro was Quadrate erzeugt