• # derdi

    Posté par  . É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  (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  (site web personnel) . Évalué à 2.

    Page 12 :

    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.

    • [^] # Re: Ordre des en-têtes

      Posté par  (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 :

      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

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.