Beachte dass für die Makronamenvergabe die selben Regeln gelten wie bei einer normalen Variablenname.
In deinem Fall "header.h" ist der Punkt unzulässig, welcher durch ein Unterstrich ersetzt werden kann und übersichtshalber
werden Makronamen, genauso wie konstanten, Groß geschrieben: "HEADER_H".
Bezüglich diesen Teiles:
|
C/C++ Quellcode
|
1
2
3
4
|
#ifndef HEADER_H
#define HEADER_H
...
#endif
|
Er dient ganz einfach der Überwachung der inkluiderten Datei, dh. eine rekursiven Einbindung wird dadruch unterbunden, und sollte am besten eindeutig gewählt werden; alá "__ENGINE_HEADER_H__".
@topic
Wie bcc-fan schon geschrieben hat hast du drei Möglichkeiten, wobei die letzen beiden vom Prinzip her, was die einbindung in ein Projekt angeht, identisch sind.
1. "Normales" Linken
Du erstellst eine Header und eine Sourcedatei die du in dein Projekt kopierst und zum Compilieren hinzufügst.
Der Compiler übersetzt dabei die Sourcedatei in eine Objektdatei, in welcher der Linker, die in der Headerdatei befindlichen Funktionsprototypen, als Maschinencode wieder findet und zussamenfügen kann.
2. Statische Bibliothek Linken
Dabei wird der Sourcecode direkt von einem Compiler in eine Libdatei generiert, in welcher der Maschienencode enthalten ist.
Im eigentlich Projekt muss neben der einbindung der Headerdatei auch die verlinkung im Linker mit der Libdatei getätigt werden.
3. Dynamische Bibliothek Linken
Aus dem Sourcecode wird eine Lib und eine Dll Datei generiert.
Die verwendungen im Unterprojekt wird genauso wie bei Nr. 2 getätigt, wobei jedoch der Code nicht direkt in die Exe compiliert wird sondern die Funktionen auf die externe Bibliothek verweißen.
Mfg Rushh0ur