Include frage

Viper2009

Erfahrenes Mitglied
Hallo, ich habe mehrere Dateien die auf eine Header Datei verlinkt sind und die wiederum mit denen. Beim Compilieren möchte ich gerne nur die zum Projekt gehörenden Dateien laden.
Muss ich dann irgend wie #ifdef oder #ifndef benutzen?

Kleines Header Beispiel
C:
#ifndef LOG_h
#define LOG_h
#include <stdio.h>

#include "PMain.h"
#include "IMain.h"
#include "GMain.h"

//Log Defines
#define LOG_DEBUG		1
#define LOG_ERROR		2
#define LOG_INFO		3

//Logging.c
void Log_ServerStart ( void );
void Log_ServerShutdown ( void );
void Log_ServerRestart ( void );
void AddToLog (int Type, const char *LogEntry, ...);
void ChatLog (const char *LogEntry, ...);
#endif

Program1.c
C:
#include "Header beispiel.h"
#define ERRORLOG	"logs/Program1_Patch_Error.log"
#define DEBUGLOG	"logs/Program1_Patch_Debug.log"
#define INFOLOG		"logs/Program1_Patch_Info.log"

Program2.c
C:
#include "Header beispiel.h"
#define ERRORLOG	"logs/Program2_Patch_Error.log"
#define DEBUGLOG	"logs/Program2_Patch_Debug.log"
#define INFOLOG		"logs/Program2_Patch_Info.log"

MFG Viper
 
Hi.

Also normalerweise sollte man einfach die Headerdateien einbinden die man auch benötigt.

Ist die Frage warum PMain.h, IMain.h und GMain.h in der beispiel.h eingebunden werden. Werden die Headerdateien da benötigt? Oder sind die da nur drin weil sie von programm1.c benötigt werden?

Gruß
 
Hi, ja das stimmt aber GMain und.... Sollte eigentlich zu Programm1 .. gehören.
Mein Problem ist das wenn ich alle 3 includes habe Probleme mit der logs gibt die erstellen dann immer alle die gleiche und das möchte ich nicht.

Ich habe 1 Funktion geschrieben und zwar die Loggin.c die und loggin.h.
weil ich kein bocke habe dies 3 mal zu machen schreiben für jedes Projekt, so habe ich die anderen 3 Projekte zu der loggin.h gelinkt.

Nun muss ich die loggin.h auch zu den anderen 3 Projekt-Mains.h linken weil ich dort das mit den
#define ERRORLOG "logs/Patch_Error.log"
#define DEBUGLOG "logs/Patch_Debug.log"
#define INFOLOG "logs/Patch_Info.log"
Hinnein defininiere.
Die Dateien ändern sich in jedes Projekt.

Wenn ich dies nachher Compiler schreiben mir alle 3 Exen in eine Log anstatt, das jedes Projekt seine eigene Log hat.
 
Zurück