#Endif gard_h est-il bonne pratique? [dupliquer
-
14-11-2019 - |
Question
Considère ceci:
#ifndef GUARD_H
#define GUARD_H
...
#endif GUARD_H
plutôt que:
#ifndef GUARD_H
#define GUARD_H
...
#endif // GUARD_H
Souvent je vois au #endif
Un «identifiant» a commenté mais sans le commenter, cela fonctionne toujours.
Est tout après le #endif
ingéré ou ...?
La solution
Non, ce n'est pas un C ++ valide: il est mal formé. Il ne peut y avoir de jetons entre le # endif
et la nouvelle ligne qui met fin à la ligne de directive de prétraitement.
Si vous souhaitez reformuler la condition du #if
Directive, vous boîte Faites-le dans un commentaire:
#endif // GUARD_H
Cependant, c'est vraiment juste redondant, surtout pour les gardes d'inclusion: si c'est le dernier #endif
Dans un fichier d'en-tête, c'est presque certainement là pour mettre fin à la #ifdef
Utilisé en haut pour empêcher l'inclusion multiple, non?
Dans d'autres endroits où vous pouvez avoir plusieurs niveaux de directives conditionnelles imbriquées, ce force Soyez utile, mais même dans ce cas, il est souvent préférable de refacter le code pour le rendre plus simple ou plus simple.