633 votes

Pourquoi les #ifndef et #define utilisés dans les fichiers d’en-tête c ++

J’ai été voir code comme ça habituellement dans le début des fichiers d’en-tête

et à la fin du fichier est

Je suis confus au sujet de l’objectif de ce.. ?

646voto

LiraNuna Points 21565

Ceux qui sont appelés Include gardes.

Une fois que l’en-tête est inclus, il vérifie si une valeur unique (dans ce cas `` ) est défini. Puis s’il n’est pas défini, il définit et continue vers le reste de la page.

Lorsque le code est inclus à nouveau, le premier `` échoue, ce qui entraîne un fichier vide.

Cela empêche la double déclaration de tous les identificateurs tels que les types, énumérations et les variables statiques.

50voto

roy Points 103
#ifndef

#ifndef <token>
/* code */
#else
/* code to include if the token is defined */
#endif

#ifndef vérifie si le jeton a été #défini plus haut dans le fichier ou dans un fichier inclus; si non, il inclut le code entre elle et la fermeture de #else ou, s'il n' #else est présent, #endif déclaration. #ifndef est souvent utilisé pour faire des fichiers d'en-tête idempotent par la définition d'un jeton une fois que le fichier a été inclus, et en vérifiant que le jeton n'a pas été fixée en haut du fichier.

#ifndef _INCL_GUARD
#define _INCL_GUARD
#endif

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X