[C/C++]:Header-Files?

Hi Programmierer!

Ich bin C/C++ Beginner und hab da eine Verständnisfrage:

Die .h-Files sind ja dazu da, Definitionen und Procedur-Header zu beschreiben. Dazu gehört ja im Normalfall ein .c oder .cpp file, das den eigentlichen Code enthält.

Nur: der eigentliche Code lässt sich doch auch vorcompilieren, oder? (Dass dieser nicht jedesmal mit neu compiliert werden muss.

Wie tut man dieses? Ich arbeite mit den Borland CommandLineTools. Entsteht danach ein .obj oder ein .lib oder was für ein File?

Thanx für Eure Hilfe!

Lex.

Ohja, das ist nicht so ganz einfach zu erklären, aber ich werds mal versuchen.

Ein .obj File erhälst du wenn du eine .c oder .cpp Datei compilierst. Anfangen kannst du damit eigentlich gar nichts.

Die entscheidende Sache macht noch der Linker, der dir aus deinem oder deinen mehreren .obj’s einen ausführbaren Code in Form einer .exe oder .dll linkt.

Eine .lib ist eine Bibliothek von einem Fremdanbieter, die du zu deinem Programm dazulinken kannst, statisch (wird mit in die .exe / .dll reingepackt) oder dynamisch wofür dann noch eine .dll dabei sein sollte.

Header-Files enthalten Klassen / Funktionsdeklarationen / Konstanten usw. So ist es z.b. für dich nicht relevant, wie eine Bibliothek die eine oder andere Funktion implementiert (und der Autor wird es dir auch nicht gerne zeigen), aber du und dein Compiler müssen wissen wie die Funktion aufzurufen ist und das steht im zur .lib mitgelieferten Header-File drin.

Ich weiss jetzt nicht so genau worum es dir geht. Bei MS VC++ gibt es was mit „vorcompilierten Headers“, das schalte ich aber immer ab. Dann ist die Frage ob dein Compiler so schlau ist und nicht jedesmal alles neu compiliert, sondern nur das was sich geändert hat. Und dann gibts noch inkrementelle Linker, die auch nicht jedesmal alles neu machen…

Ich hoffe ich hab ein wenig Klarheit reingebracht

MfG Bruno