#pragma once

De RAD Studio
Aller à : navigation, rechercher

Remonter à Présentation des directives pragma - Index

Syntaxe (Voir Pseudo-grammaire)

#pragma once

Description

#pragma once est une directive du préprocesseur utilisée pour empêcher que les fichiers en-tête soient inclus plusieurs fois. La directive #pragma once, présente dans un fichier, garantit que le fichier ne sera pas inclus plusieurs fois dans le projet en cours.


Un exemple illustrant l'utilité de #pragma once est le fait qu'un fichier qui inclut un autre en-tête est suffisant. Pour un exemple logique où la directive peut être utilisée, voir le code ci-dessous.

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()
{
  //a triangle
  Triangle tr0;
  //a square
  Square sq0;
  return 0;
}

Puisque le triangle et le carré nécessitent la structure vertex pour connaître leur position dans un espace tridimensionnel, les deux incluent Vertex.h. Le triangle et le carré sont aussi inclus dans le .cpp principal. Par conséquent, le fichier Vertex.h devrait être inclus deux fois (par Triangle.h et Square.h). L'utilisation de #pragma once dans Vertex.h empêche le préprocesseur d'inclure le fichier une seconde fois. En résultat, aucune erreur n'est déclenchée.

Remarque : La même chose peut être accomplie avec #ifndef/#define/#endif, qui est la façon standard ANSI de traiter le problème de double inclusion.