J'ai vu du code comme celui-ci généralement au début des fichiers d'en-tête:
#ifndef HEADERFILE_H
#define HEADERFILE_H
Et à la fin du fichier se trouve
#endif
Quel en est le but?
#pragma
vaut mentionner ce qu'est un : il active une fonctionnalité spécifique au compilateur. Bien qu'il #pragma once
soit très largement pris en charge, il n'est pas standard.
info cpp
ou regardez ici ) dit "elle n'est pas reconnue par tous les préprocesseurs, vous ne pouvez donc pas vous y fier dans un programme portable.". Et GNU cpp optimise l' #ifndef
idiome commun et portable pour qu'il soit aussi efficace que #pragma once
.
#ifndef HEADERFILE_H
peut violer l'espace de noms de l'implémentation du nom de l'en-tête qui commence par E
; les identifiants commençant par E
et un chiffre ou une lettre majuscule sont réservés à <errno.h>
. Je suggère #ifndef H_HEADERFILE
.