IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

La doc dans le .c


Sujet :

C

  1. #1
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut La doc dans le .c
    Hello,

    J'ai un collegue qui me fait remarquer que visiblement, ecrire dans le .c la doc des fonctions exportées (celles qu'on trouve dans le .h) est entré dans les moeurs..
    J'aimerais avoir vos avis

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    La place de la doc des fonctions exportées est dans le .h

  3. #3
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    C'est ce qu'on m'a toujours enseigné en effet..
    Mais l'utilisation d'un generateur de doc type doxygen ne change t elle pas la donne quand à la fonction documentatrice du .h?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénierie des systemes embarqués temps réels
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénierie des systemes embarqués temps réels
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Par défaut
    Les variables et les spécifications des fonctions mises en oeuvre dans un module sont regroupés dans un fichier.h

    raison pour laquelle on y accede par la directive #include.

    En plus c'est le fichier qui pose le moins de problèmes!

  5. #5
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Gruik
    C'est ce qu'on m'a toujours enseigné en effet..
    Mais l'utilisation d'un generateur de doc type doxygen ne change t elle pas la donne quand à la fonction documentatrice du .h?
    Doxygen gère aussi bien ce qui est dans le .h que dans le .c. Et de plus, il y a une partie de la doc d'utilisation qui n'a sa place ni dans l'un, ni dans l'autre. Doxygen peut servir à la mettre en forme en la prenant ailleurs (dans des .dox par exemple).

  6. #6
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    Moin on ma toujours dit que la doc des fonctions exportées doit être dans les .h.
    Et il ne me semble pas qu'écrire la doc dans les .c soit entré dans les moeurs

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    qu'entendez-vous par doc ???

    Moi je dirais :

    • dans le .c :


      • En tête du fichier : liste des fonctions figurant dans le fichier, classées par scope : local, interne/externe, externe.

      • fonction (éventuellement algo) documentée pour le programmeur suivant éventuel dans l'entête de la fonction.

      • Commentaires abondants


    • Dans le .h :


      • Une ligne ou 1/2 ligne de commentaire éventuellement


    • Pour la doc :


      • Un "man page" soit par fonction soit par module si trop gros.

      • Un fichier html de documentation complet.

  8. #8
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    Citation Envoyé par bo turbo
    Les variables et les spécifications des fonctions mises en oeuvre dans un module sont regroupés dans un fichier.h

  9. #9
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Histoire de garder une certaine unité de mes fichiers sources, je met toujours les mêmes commentaires d'en-tête de mes fonctions aussi bien dans le header que le fichier source. Cependant, s'il s'agit de mettre des commentaires Doxygen pour générer une petite documentation des fonctions, je met uniquement cette version dans le header !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  10. #10
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    Moi, lorsque je débutai, un collègue ma dit de les mettres dans les .h, et depuis, j'ai pas changer mes habitudes

  11. #11
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Les fichiers d'en-tete etant la partie publique du code, il me semble indispensable qu'ils contiennent la documentation des fonctions (role, valeur de retour, parametre, etc.).

    Ensuite rien n'empeche d'avoir les meme commentaires dans les fichiers sources (c'est personellement ce que je fais) meme si ca demande un peu plus de travail pour maintenir cette doc.

    Dans tous les cas ca ne dispense pas d'avoir une documentation independantes du code a cote (fichier pdf, html, page man, info, etc.)

  12. #12
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Pour ma part je la place dans le .c . Ça me parait plus pratique d'avoir la doc d'une fonction dans le même fichier (ça évite des allers-retours visuels entre 2 fichiers, il suffit de remonter jusqu'en haut de la fonction)

  13. #13
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par muad'dib
    Pour ma part je la place dans le .c . Ça me parait plus pratique d'avoir la doc d'une fonction dans le même fichier (ça évite des allers-retours visuels entre 2 fichiers, il suffit de remonter jusqu'en haut de la fonction)
    Bien souvent, j'ai pas l'implementation disponible alors que les entetes le sont. Je ne vois donc pas l'interet de mettre la doc d'utilisation a un endroit ou l'utilisateur n'a pas acces.

  14. #14
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Bien souvent, j'ai pas l'implementation disponible alors que les entetes le sont. Je ne vois donc pas l'interet de mettre la doc d'utilisation a un endroit ou l'utilisateur n'a pas acces.
    Bah oui, bon sens élémentaire... je ne vois pas bien ce qu'il y a à discuter là-dessus...

  15. #15
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Ok merci,
    Je pense que certains trouvent que c'est plus pratique d'écrire la doc de la fonction en meme temps que le corps de la fonction, donc au dessus d'elle dans le .c... Si la doc est générée systematiquement, ils ne regarderaient plus le .h, ce serait qu'une formalité pour rendre la compilation possible..
    Mais je persiste egalement à croire que c'est cracra et on a pas toujours cette doc générée sous la main

  16. #16
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Si tu prend le cas de GTK+, eux ils ne mettent aucune description dans les headers et les commentaires pour la génération de la documentation se trouve dans les fichiers sources, m'est d'avis que dans le header, au moins une petite doc ne fait pas de mal
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  17. #17
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Gruik
    Je pense que certains trouvent que c'est plus pratique d'écrire la doc de la fonction en meme temps que le corps de la fonction
    Comment est-ce que tu peux ecrire une fonction publique sans savoir par avance quelle va etre sa doc? Dans ma pratique on concoit d'abord l'interface d'un module, -- ie on ecrit l'entete et la doc d'utilisation. Une fois que tout le monde (y compris les utilisateurs) est d'accord, on implemente.

  18. #18
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Comment est-ce que tu peux ecrire une fonction publique sans savoir par avance quelle va etre sa doc? Dans ma pratique on concoit d'abord l'interface d'un module, -- ie on ecrit l'entete et la doc d'utilisation. Une fois que tout le monde (y compris les utilisateurs) est d'accord, on implemente.
    +1

    Par ailleurs lorsque tu comptes implémenter une fonction, c'est que tu l'as déjà conçue ou bien au moins un peu réfléchie alors tu sais ce que tu va écrire
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  19. #19
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par Franck.H
    Si tu prend le cas de GTK+, eux ils ne mettent aucune description dans les headers et les commentaires pour la génération de la documentation se trouve dans les fichiers sources, m'est d'avis que dans le header, au moins une petite doc ne fait pas de mal
    Justement c'est déjà suffisamment le bordel dans les fichiers d'en-tête, il n'est pas nécessaire d'en rajouter.

    En plus si l'implémentation du code n'a pas à être connu, pourquoi celle de la doc le serait ? Il y a les fichiers HTML (ou autre) si tu veux lire la doc.

    Bien sûr sans Doxygen & Co ce n'est pas la même chose, il faut forcement mettre la doc dans les fichiers d'en-tête.

  20. #20
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Citation Envoyé par gege2061
    En plus si l'implémentation du code n'a pas à être connu, pourquoi celle de la doc le serait ?
    Un bon compromis serait de mettre la doc dans les fichiers d'entêtes uniquement pour les fonctions publiques, pour expliquer comment les utiliser aux utilisateurs. La doc de l'implémentation quant à elle pourrait être constituée de la doc du .h complétée d'une documentation destinée aux autres programmeurs.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. insertion d'un document pdf ou doc dans oracle
    Par MSM_007 dans le forum Oracle
    Réponses: 1
    Dernier message: 11/07/2006, 14h42
  2. Enregister doc dans champ table mysql
    Par kakashi embedded dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 16/01/2006, 19h32
  3. [Word] Afficher un .doc dans une page html
    Par Olaf MENJI dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 11/11/2005, 10h35
  4. [VB.Net] Comment stocker un .doc dans une BDD ?
    Par SergeF dans le forum Contribuez
    Réponses: 8
    Dernier message: 12/10/2005, 12h43
  5. [Fichier] Ajout des lignes de doc dans arraylist
    Par 3adoula dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 29/04/2004, 22h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo