mehrfach include vermeiden
-
hi,
ich habe mehrere klassen die die selben #include dateien brauchen. ist das schlimm, wenn ich in meinen hauptprogramm dann die .h dateien einbinde und somit ca. 5 mal die selben dateien einbinde? gibts da möglichkeiten das zu ändern?danke
-
Include-Guards:
#ifndef MY_HEADER_H #define MY_HEADER_H // header-inhalt ... #endif
Simpel, aber wirkungsvoll.
-
Ich nehme pragma once, mit #ifdef kannst du es auch machen.
-
Natürlich sind pragmas standardisiert
-
hi!
danke, ich habe das jetzt so gemacht:#ifndef MAIN_H #define MAIN_H #include <iostream> #include <vector> #include <list> #include <stringstream> #endif
-
Die Stnadard-header haben bereits Includegards.
-
nochwas:
ich habe im internet ein makro gefunden dass mir die "include-guards" so macht#ifndef Main_h_28_01_2004_14_45_48 #define Main_h_28_01_2004_14_45_48 #endif
also mit timestamp hinten dran. ist sowas standard konform? oder muss man sich da nach einen bestimmten format richten?
-
Das Format ist völlig egal, du kannst auch A1 bis Z9999 durchnumerieren wenn dir danach ist. Was nicht erlaubt ist, was man aber oft sieht, sind Namen, die mit zwei Unterstrichen (__FOO_H) oder mit Unterstrich und Großbuchstaben (_BAR_H) beginnen. Die Standardheader dürfen das, aber du darfst es nicht.