Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

#pragma once

2 réponses
Avatar
Michael Moreno
Bonjour,

je ne comprends pas ce que signifie cette directive: "#pragma once".

Est-elle équivalent à l'écriture :

#ifndef MA_CLASSE_H
#define MA_CLASSE_H

...
#endif


Est-elle spécifique à VC++ ou bien est-ce compatible avec gcc aussi ?

Merci pour votre aide.

--
Drakkhen

http://michael.moreno.free.fr/

2 réponses

Avatar
Fabien LE LEZ
On Sat, 26 Jun 2004 09:21:06 +0100, Michael Moreno
:

Est-elle spécifique à VC++ ou bien est-ce compatible avec gcc aussi ?


A priori, un #pragma est spécifique au compilateur, et doit donc être
décrit dans la doc d'icelui.


--
schtroumpf schtroumpf

Avatar
Loïc Joly
Michael Moreno wrote:

Bonjour,

je ne comprends pas ce que signifie cette directive: "#pragma once".

Est-elle équivalent à l'écriture :

#ifndef MA_CLASSE_H
#define MA_CLASSE_H

...
#endif


A priori, elle est potentiellement légèrement plus simple à optimiser
pour l'auteur du compilo. En effet, les #ifndef, sauf optimisation
spécifique (je ne sais d'ailleur pas si beaucoup de compilos la font) du
compilo, demande à lire quand même à chaque l'ensemble du fichier .h à
la recherche du #endif correspondant (d'où la préconnisation par
certains d'include guard externes, jamais essayé, donc je ne peux pas
donner mon avis). Avec ce #pragma, on sais que ce n'est pas un #define
quelconque, mais un include guard.

Est-elle spécifique à VC++ ou bien est-ce compatible avec gcc aussi ?


Comme touys les #pragma, c'est spécifique à un compilo. Celui là est
assez connu, mais je ne sais pas si gcc l'utilise.

--
Loïc