#pragma once
Nach oben zu Pragma-Direktiven (Übersicht) - Index
Syntax (siehe Pseudogrammatik)
#pragma once
Beschreibung
#pragma once
ist eine Präprozessordirektive, mit der das mehrfache Einbeziehen von Header-Dateien verhindert wird. Wenn die Direktive #pragma once
in einer Datei vorhanden ist, ist sichergestellt, dass die Datei nicht mehrfach in das aktuelle Projekt einbezogen wird.
Beispiel
#pragma once
ist nützlich, weil eine Datei, die einen anderen Header einbezieht, ausreicht. Im Folgenden finden Sie ein logisches Beispiel, wie die Direktive verwendet werden kann.
Vertex.h
#pragma once struct Vertex{ int x_coord; int y_coord; int z_coord; };
Triangle.h
#include "Vertex.h" struct Triangle{ Vertex p1; Vertex p2; Vertex p3; };
Square.h
struct Square{ Vertex v1; Vertex v2; Vertex v3; Vertex v4; };
Drawing.cpp
#include <vcl.h> #include "Triangle.h" #include "Vertex.h" int main() { //ein Dreieck Triangle tr0; //ein Quadrat Square sq0; return 0; }
Weil sowohl das Dreieck als auch das Quadrat die Vertex-Struktur zur Festlegung ihrer Position im dreidimensional Raum benötigen, beziehen beide Vertex.h ein. Das Dreieck und das Quadrat werden auch in die Haupt-.cpp einbezogen, daher würde die Datei Vertex.h zweimal (von Triangle.h und von Square.h) einbezogen werden. Wenn Sie in der Datei Vertex.h #pragma once
angeben, wird verhindert, dass der Präprozessor die Datei ein zweites Mal einbezieht, und es wird kein Fehler ausgelöst.
Hinweis: Mit
#ifndef/#define/#endif
wird dasselbe Ergebnis erzielt.#ifndef/#define/#endif
ist das ANSI-Standardvorgehen für das Problem mit der doppelten Inklusion.