Les inclusions de fichiers d'en-tête système sont effectuées avant les inclusions de fichiers d'en-tête utilisateur
J'aurais bien aimé une explication sur ce point car d'expérience c'est plutôt une source de galères. On se retrouve à masquer dans le .c les manques du .h, et à chaque fois qu'on inclut le .h il faut deviner ce qu'il manque.
Typiquement leur exemple impose d'inclure stdint.h avant chaque inclusion de header.h, alors que header.h devrait être auto-suffisant.
C'est la reco7 ; c'est une recommandation…
C'est en lien avec la reco3 …et les règles 4 et 5
La section 4.1 débute par :
Si l’inclusion des fichiers d’en-tête n’est pas réduite au minimum nécessaire, cela génère des dépendances inutiles, augmente le temps de compilation, et rend l’analyse du code plus complexe par la suite (qu’elle soit manuelle ou outillée). Afin de réduire les dépendances et une propagation inutile de déclarations, les inclusions de fichiers d’en-tête doivent être réalisées dans un fichier « .c » et non pas dans un fichier d’en-tête « .h ». Cependant, dans certains cas, comme typiquement la définition de types, l’inclusion de fichiers d’en-tête de la librairie standard (comme stddef.h et stdint.h) dans un autre fichier d’en-tête est justifiable.
Pour moi, header.h est justement une exception et ne devrait être utilisé que si on a besoin de tout ce que ça draine.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# derdi
Posté par steph1978 . Évalué à 1.
Recommandation numéro 1: utiliser autre chose que C.
Et sinon, lire et appliquer les 105 autres recommandations du guide de l'ANSSI. Merci à eux.
# Intéressant
Posté par Pierre Tramal (site web personnel) . Évalué à 10.
Du coup on peut dire que l'on programme en ANSSI C ?
(je sors)
# Ordre des en-têtes
Posté par Julien Jorge (site web personnel) . Évalué à 2.
Page 12 :
J'aurais bien aimé une explication sur ce point car d'expérience c'est plutôt une source de galères. On se retrouve à masquer dans le .c les manques du .h, et à chaque fois qu'on inclut le .h il faut deviner ce qu'il manque.
Typiquement leur exemple impose d'inclure stdint.h avant chaque inclusion de header.h, alors que header.h devrait être auto-suffisant.
[^] # Re: Ordre des en-têtes
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
C'est la reco7 ; c'est une recommandation…
C'est en lien avec la reco3 …et les règles 4 et 5
La section 4.1 débute par :
Pour moi, header.h est justement une exception et ne devrait être utilisé que si on a besoin de tout ce que ça draine.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.