Präprozessormetaprogrammierung. Das heißt, die enthaltene Datei wird als eine Art Kompilierzeitfunktion verwendet, die eine Aufgabe ausführt. Die Argumente für die Funktion sind Makros. Sie können beispielsweise die Datei einen Abschnitt verbunden, der wie folgt aussieht:
// define INCLUDE_STACK to include "ofstack.h"
#ifdef INCLUDE_STACK
#include "dcmtk/ofstd/ofstack.h"
#endif
Also, wenn ich "ofstack.h"
umfassen wollte, ich tun würde, so wie folgt aus:
#define INCLUDE_STACK
#include "ofstdinc.h"
#undef INCLUDE_STACK
Nun stellen die später nach unten Linie, jemand will diesen bestimmten Abschnitt des Headers verwenden:
// define INCLUDE_STRING to include "ofstring.h"
#ifdef INCLUDE_STRING
#include "dcmtk/ofstd/ofstring.h"
#endif
So sie wie folgt vor:
#define INCLUDE_STRING
#include "ofstdinc.h"
#undef INCLUDE_STRING
Wenn "ofstdinc.h"
Wächter enthalten würde, wäre es nicht enthalten.
diejenigen, die sind versuchen, einen Hack (Mehrfacheinschluss) zu verwenden, um ein Problem zu lösen. In Ihrem eigenen neuen Code ist es das Beste, diese Art von Lösung zu vermeiden und immer mit Include-Wachen zu arbeiten. – pmg