#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/#endifwird dasselbe Ergebnis erzielt.#ifndef/#define/#endifist das ANSI-Standardvorgehen für das Problem mit der doppelten Inklusion.