Duplicata possible:
# pragma - aide à la compréhension
J'ai vu le pragma
plusieurs fois, mais toujours confus, quelqu'un sait ce qu'il fait?
Dans les langages de programmation C et C++, #pragma once est une directive de préprocesseur non standard mais largement prise en charge conçue pour que le fichier source actuel ne soit inclus qu'une seule fois dans une seule compilation. Ainsi, #pragma sert une fois le même but que les #include gardes, mais avec plusieurs avantages, notamment: moins de code, éviter les conflits de noms et améliorer la vitesse de compilation.
Voir l'article Wikipedia pour plus de détails.
Il est utilisé pour remplacer le code de préprocesseur suivant:
#ifndef _MYHEADER_H_
#define _MYHEADER_H_
...
#endif
Une bonne convention ajoute les deux pour prendre en charge les compilateurs hérités (ce qui est rare):
#pragma once
#ifndef _MYHEADER_H_
#define _MYHEADER_H_
...
#endif
Donc, si #pragma échoue une fois, l'ancienne méthode fonctionnera toujours.
Généralement, les directives #pragma
Sont destinées à implémenter des instructions de préprocesseur spécifiques au compilateur. Ils ne sont pas standardisés, vous ne devez donc pas trop compter sur eux.
Dans ce cas, l'objectif de #pragma once
Est de remplacer les gardes d'inclusion que vous utilisez dans les fichiers d'en-tête pour éviter les inclusions multiples. Il fonctionne un peu plus rapidement sur les compilateurs qui le prennent en charge, il peut donc réduire le temps de compilation sur les grands projets avec beaucoup de fichiers d'en-tête qui sont fréquemment édités #include
.
pragma est une directive pour le préprocesseur. Il est généralement utilisé pour fournir un contrôle supplémentaire lors de la compilation. Par exemple, n'incluez pas le même code de fichier d'en-tête. Il y a beaucoup de directives différentes. La réponse dépend de ce qui suit le mot pragma.