Zum Inhalt springen

Freshman

Mitglieder
  • Gesamte Inhalte

    1
  • Benutzer seit

  • Letzter Besuch

  1. Das ist natürlich total humbug, dass eine Headerdatei auch nur irgendwie kompiliert wird. Wie soll denn das gehen??? Es läuft so ab: in einer .cpp oder .c Datei steht ein In diesem Beispiel in der Error.cpp #include Error.h [/php] dieses kopiert der Präprozessor dann in die Error.cpp Datei, die included hat. (Das tut er nebenbei bis er alle befehle abgearbeitet hat, und zwar von oben bis unten.) Das nennt man das Forwarding! Dies bezweckt, dass ich eine Funktion auifrufen kann, obwohl ich sie selbst noch nicht beklariert habe. Wenn er damit fertig ist, dann kommt der Kompieler. Aber woher weiß mein Kompieler dann, wo die Funktion ist, die er in der Headerdatei stehen hat? Das ist relativ einfach. Ein Compiler gibt jeder Funktion nach dem Namen eine Eindeutige kennung beim Kompilieren. [php| Z.B so: iLinkError@Error@@QAEXHH@Z Diese Funktion lautet : void LinkError(int i, int y); So sieht es z.B. auch aus, wenn ein Kompiler ein nichtaufgelöstes externes Symbol ausgibt. "public: void __thiscall Error::LinkError(int,int)" (?LinkError@Error@@QAEXHH@Z) [/php] Später tauchen diese Namen dann in so genannten .lib oder auch .dll Datein auf. [b]Dennoch wird aber nie eine Headerdatei kompiliert, nein sie ist eher ein inhaltsverzeichniss, die vor die .cpp Datei gehängt ist, da #include ja eindeutig eine Präprozessor Anweisung ist. [/b] wenn etwas nicht verständlich war, einfach nachfragen!!!

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...