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 :

organisation et convention d'ecriture


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut organisation et convention d'ecriture
    bonjour,

    j'aimerai coder utile et proprement (), pour du c embarqué

    comment organiser un fichier generique comme gere_touche(), ou gere_led ...

    je m'explique:

    comment procederiez vous pour l'ecriture de ce fichier:

    1- la fonctions a ces constantes et variables privées (aucune intervention de variable ou constante globale) et ainsi apres traitement cette fonction retourne un resultat. oui mais comment faire lorsque nous avons plusieurs résultats?

    ou 2-la fonctions a ces constantes et variables privées (intervention de variable ou constante globale) ainsi la fonction ne retourne pas de resultat mais modifie en interne les variables globales en question... mais probleme ce fichier c est difficilement reutilisable pour un autre projet sans y retoucher

    et concernant la convention d'ecriture, comment dissociez vous les variables et constantes globales aux privées? g_exempl_variabl_global?

    comment procedez vous pour les constantes d'un fichier genre gere_led.h
    avec des designations courantes comme "oui", "non" "on" ou "off" pour ne pas se retrouver avec plusieurs definition de oui et autres
    (par exemple LED__OUI...)?

    ouf j'ai terminé, merci pour vos reponses

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    1- la fonctions a ces constantes et variables privées (aucune intervention de variable ou constante globale) et ainsi apres traitement cette fonction retourne un resultat. oui mais comment faire lorsque nous avons plusieurs résultats?
    Faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    func(&resultat1, &resultat2);
    Ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    struct funcres {
        int resultat1;
        int resultat2;
    };
     
    ...
     
    struct funcres func(void)
    {
        struct funcres res;
        ...
        return res;
    }
     
    ...
     
    struct funcres mes_resultats = func();
    printf( ... mes_resultats.resultat1, mes_resultats.resultat2);
    Ou combiner les deux techniques ...

    2-la fonctions a ces constantes et variables privées (intervention de variable ou constante globale) ainsi la fonction ne retourne pas de resultat mais modifie en interne les variables globales en question... mais probleme ce fichier c est difficilement reutilisable pour un autre projet sans y retoucher
    Tu sais qu'il est interdit de parler de variables globales sur le forum ? Je rigole bien sûr, mais les variables globales, on le répète assez souvent, il ne faut jamais en abuser. Dire exactement quand peut-on les utiliser et quand ne peut-on pas hélas, c'est une tâche très difficile.

    et concernant la convention d'ecriture, comment dissociez vous les variables et constantes globales aux privées? g_exempl_variabl_global?
    Personnellement, quand je dois utiliser des globales, je les mets toujours dans une structure. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    typedef struct _MYAPP {
        int globale1;
        double globale2;
    } MYAPP;
     
    ...
     
    MYAPP MyApp;
     
    ...
     
    MyApp.globale1 = 10;
    MyApp.globale2 = 0.5;
    comment procedez vous pour les constantes d'un fichier genre gere_led.h
    avec des designations courantes comme "oui", "non" "on" ou "off" pour ne pas se retrouver avec plusieurs definition de oui et autres
    (par exemple LED__OUI...)?
    Personnellement je mets un underscore uniquement : LED_OUI, comme il est coutume de faire.

    ouf j'ai terminé,
    T'es sûr qu'il n'y en a pas d'autres ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    merci pour ta reponse Melem, j'y vois deja plus clair

    puisque tu insistes, oui il y a bien autre chose,

    il y a souvent des constantes quasiment inevitables comme les bases de temps(TPS_5S, TPS_5MIN...), ou les status(ON, OFF, EN_COURS, NULL...)
    et chaque fichier .c en à besoin (la plupart du temps)

    comment fais tu alors?

    1- un .h avec les constantes globales qui sont inéviatables (oui j'ai dit globale)
    ou
    2- un .h par .c avec redifinition si besoin des constantes?

  4. #4
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Mais les macros (les constantes comme tu le dis) n'ont rien à voir avec les variables globales ! Ce sont des définitions (#define) et leurs places sont bien dans les fichiers d'en-tête. Tu inclus cet en-tête partout où tu as besoin des déclarations/définitions qu'il contient, que ce soit dans un fichier source ou dans un autre fichier d'en-tête.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    oui je veux bien mettre un fichier d'entete avec tout les defines, mais par exemple j'ai realisé un gere_touche.c qui à besoin des macros APPUI_COURT, APPUI_EN_COURS_APPUI_LONG... pui un gere_led.c qui à besoin des macros ALLUME, ETEINT, CLIGNOTE10HZ... pourquoi rassembler toutes les macros alors que dans ce cas la meilleur solution (à mon avis) est de les séparer par gere_led.h et gere_touche.h et ainsi le gere_led.c et .h sont quasiment indepandant et réutilisables?

  6. #6
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    la meilleur solution (à mon avis) est de les séparer par gere_led.h et gere_touche.h et ainsi le gere_led.c et .h sont quasiment indepandant et réutilisables
    Oui, c'est ça ! T'as tout juste ! Je parlais de rassembler les variables globales dans une structure, je ne parlais pas de macros. D'ailleurs qu'est-ce que sa signifie une macro dans une structure ? Pour les macros, ta méthode est impec.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 30
    Par défaut
    merci pour ton aide Melem

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quelles conventions d'ecriture choisir ?
    Par louf99 dans le forum C++/CLI
    Réponses: 0
    Dernier message: 18/11/2009, 15h24
  2. Convention d'ecriture Matlab
    Par airballman dans le forum MATLAB
    Réponses: 6
    Dernier message: 20/05/2009, 18h00
  3. lecture/ecriture des broches RTS/CTS du port RS232
    Par .:: sly51 ::. dans le forum C
    Réponses: 3
    Dernier message: 24/10/2006, 15h28

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