Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Übersicht includes

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
01.10.2008, 15:15 Uhr
banshee



Hallo,

wie behält man sich denn bei einem größeren Projekt am besten den Überblick über die verschiedenen includes? Mir fallen jetzt so auf Anhieb zwei Methoden ein:

1) Man inkludiert einfach jeden header, den man braucht, direkt in der Datei IN DER man ihn braucht. Hat den Vorteil, dass man direkt sieht, welche Datei was inkludiert und man nicht ewig nach dem include suchen muss, dafür gibts wahrscheinlich komlettes Wirr-Warr und Mehrfach-includes.

2) Man macht einfach EINE header-Datei wo ALLE includes reinkommen, die das Projekt benutzt und jede Datei, die einen header braucht, inkludiert einfach die Super-include-Datei. Jetzt frage ich mich, ob das so ein guter Ansatz ist, weil so kann es ja zu Namenskonflikten und ebenfalls Mehrfachincludes kommen...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
01.10.2008, 16:03 Uhr
Hans
Library Walker
(Operator)


Hi,


Zitat von banshee:
1) Man inkludiert einfach jeden header, den man braucht, direkt in der Datei IN DER man ihn braucht.

Das muss man sowieso machen, weil der Compiler sich sonst über unbekannte Deklarationen beschwert, wenn im Quelltext ein Symbol (Variablen- ofer Funktionsname) benutzt wird, das in einer include-datei deklariert ist, die nicht mit eingebunden wurde.


Zitat von banshee:
dafür gibts wahrscheinlich komlettes Wirr-Warr und Mehrfach-includes.

Nö, kein komplettes Wirr-Warr, aber eine lange Liste mit Include-Statements am Anfang der Datei. Und gegen Mehrfachincludes helfen Include Guards. Die stehen in den Standard-Includes eh drin, in eigenen muss Du sie dann mit einbauen. Davon war hier im Forum auch schon die Rede. (Hab nur gerade keine Links parat.)


Zitat von banshee:
2) Man macht einfach EINE header-Datei wo ALLE includes reinkommen, die das Projekt benutzt und jede Datei, die einen header braucht, inkludiert einfach die Super-include-Datei. Jetzt frage ich mich, ob das so ein guter Ansatz ist, weil so kann es ja zu Namenskonflikten und ebenfalls Mehrfachincludes kommen...

also Nameskonflikte möglicherweise, aber die Mehrfachincludes kannst Du ausschliessen, wenn die Includeguards sauber eingebaut sind. Ansonsten ergibt so eine Universal-Include Datei nur dann einen Sinn, wenn die Modulde, zu der sie gehören auch in weiteren Projekten verwendet werden sollen, und über weitere #define-direktiven gesteuert werden kann, welche Module verwendet werden sollen. Im Hauptprogramm würde das dann so aussehen:

C++:
#define a
#define b

#include "Universal_inc"


In den Includedateien muss dazu dann ein erweiterter Guard implementiert werden, der überprüft, ob bestimmte Symbole definiert sind oder nicht, und dem entsprechend include-dateien einbindet.

Im Buch Softwaretechnik in C und C++ von Rolf Isernhagen ist dazu ein schönes Beispiel, das deutlich macht, wo welche includes in einem grösseren Projekt gebraucht werden, und wo nicht. In meiner Buchversion (3. Auflage) ab Seite141 zu finden.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: