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

GTK+ avec C & C++ Discussion :

[BEEC] Identificateurs (noms de variables, fonctions..)


Sujet :

GTK+ avec C & 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 [BEEC] Identificateurs (noms de variables, fonctions..)
    Peut être qu'il y a pas de règle à établir la dessus, mais j'ai plusieurs dilemmes.

    1) Faudrait il ne pas melanger l'anglais et le français dans les noms de variables/fonctions? je crois qu'on peut pas se passer des "set", "get", "print"...
    Mais "print_tableau()" est il correct? Faudrait il ecrire "print_array()"? ou "afficher_tableau()" ?

    2) Ensuite, qd un identificateur contient plusieurs mots, faudrait il séparer systematiquement chaque mot d'un underscore?

    "set_element_tableau_final()", "url_image_avion"
    J'ai plutot tendance à faire "set_cheminvideolarge()"

    3) Faudrait il donner une taille max aux identificateurs?

    4) Pour ou contre les abreviations du genre "tab", "tmp"?

    5) A propos des majuscules, il en faut :
    a) pas du tout
    b) une à chaque mot
    c) une à chaque mot sauf le premier mot
    ?

    6) Certains prefixent la variable du type de celle ci (ex "int i_numero"), pour ou contre?

    Vos avis sur le sujet?

  2. #2
    Membre Expert Avatar de gnto
    Homme Profil pro
    Ingénieur système logiciel
    Inscrit en
    Janvier 2006
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur système logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 923
    Par défaut
    Moi les variables je mets pas de underscore parcontre le premier caractere du deuxieme mot a une majuscule et meme le troisieme mot si il y a en un

    et pour les fonctions je mets des underscores

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     void array_to_string();
    Enfin je crois qu'il n'y a pas de règle mais plutot des conventions.

  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
    Ca me semble bien, mais les fonctions de la librairie standard du C (et leurs parametres) sont tout en minuscule et en general sans underscore. Pourquoi?

  4. #4
    Membre Expert Avatar de gnto
    Homme Profil pro
    Ingénieur système logiciel
    Inscrit en
    Janvier 2006
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur système logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 923
    Par défaut
    Citation Envoyé par Gruik
    6) Certains prefixent la variable du type de celle ci (ex "int i_numero"), pour ou contre?
    heu perso, j'avais un prof qui voulait que l'on mette

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int l_ivariable;
    char l_cvariable;
    Pour des variables locales fallait mettre l_ pour une variable générale g_,
    après la premiere lettre du type et enfin le nom de la variable

  5. #5
    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
    Ah, mais sachant qu'on est pas sensé utiliser de variables globales, c'est un peu inutile non?

  6. #6
    Membre Expert Avatar de gnto
    Homme Profil pro
    Ingénieur système logiciel
    Inscrit en
    Janvier 2006
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur système logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 923
    Par défaut
    Citation Envoyé par Gruik
    Ah, mais sachant qu'on est pas sensé utiliser de variables globales, c'est un peu inutile non?
    Faut arrêter avec les interdits, c'est très fortement déconseillé. On va dire que les variables globales existes.

  7. #7
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    1). Melanger le francais et anglais ne pose pas de probleme en soit, je pense.
    Mais l'anglais étant la langue de l'informatique il vaut mieux tout mettre en anglais.
    Une fois je suis tombé sur un code avec des noms de variables en allemand, et ben c'etait pas de la tarte pour comprendre.

    2). Voir par exemple les fonctions de Gtk+

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gtk_text_view_new_with_buffer(...)
    Le nom de la fonction est assez explicite pour savoir ce que fais la fonction.

    je trouve que ca fait quand meme un peu long...

    3). Tu veux dire une taille max pour le nom d'une variable ou le nom d'une structure par exemple? Oui il faut une taille max mais laquelle alors la je vois pas.

    4). Pour les variables j'aime bien donner un nom explicite
    Pas de variable type a, b, c.
    Et oui pour tmp pour une variable temporaire, ret pour la valeur que l'on va retourner...

    Pour les indices j'aime bien le i (comme tout le monde je pense )

    5). Pour les noms avec plusieurs mots, je fais comme gnto.

    6). Pour les préfixes, bof bof, encore pour un pointeur, faire preceder de p_ pourquoi pas mais pas pour les types courants comme int char, long... non.

  8. #8
    Membre Expert Avatar de gnto
    Homme Profil pro
    Ingénieur système logiciel
    Inscrit en
    Janvier 2006
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur système logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 923
    Par défaut
    Y'a t'il une limite (fixé par le compilateur) sur la longueur du nom d'une variable ?

  9. #9
    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 gnto
    Y'a t'il une limite (fixé par le compilateur) sur la longueur du nom d'une variable ?
    Le minimum est fixé par la norme. De mémoire :
    • C90 : 8 caractères.
    • C99 : 32 caractères.
    A vérifier : "google n1124" pour les plus téméraires...

  10. #10
    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
    1) Faudrait il ne pas melanger l'anglais et le français dans les noms de variables/fonctions? je crois qu'on peut pas se passer des "set", "get", "print"...
    Mais "print_tableau()" est il correct? Faudrait il ecrire "print_array()"? ou "afficher_tableau()" ?
    Il faut une regle... c'est tout. On peut faire tout en anglais, utiliser le vocabulaire informatique en anglais et celui du domaine en francais (dont print_array mais print_compte_courant), tout en francais sauf ce qui est dans une liste fixee au depart, tout en francais. Le choix va dependre du contexte.

    2) Ensuite, qd un identificateur contient plusieurs mots, faudrait il séparer systematiquement chaque mot d'un underscore?

    "set_element_tableau_final()", "url_image_avion"
    J'ai plutot tendance à faire "set_cheminvideolarge()"
    De nouveau, c'est un choix arbitraire. Mais il faudra m'expliquer ta regle qui fait qu'apres set il faut un underscore mais pas apres chemin. Et j'aime pas trop les methodes qui font que les mots ne sont pas visibles, il y a un risque d'ambiguite.

    3) Faudrait il donner une taille max aux identificateurs?
    Je ne le ferais que si une plateforme cible a une limitation.
    En general, plus la portee d'un identificateur est restreinte, plus son nom doit etre court. L'identificateur qui controle une boucle ne doit pas faire 30 caracteres.

    4) Pour ou contre les abreviations du genre "tab", "tmp"?
    Les abreviations sont a prendre dans une liste officielle pour le projet.

    5) A propos des majuscules, il en faut :
    a) pas du tout
    b) une à chaque mot
    c) une à chaque mot sauf le premier mot
    ?
    C'est la meme question que le 2. Note qu'on peut adopter des regles differentes suivant la nature de ce qui est identifie (par exemple les types commencent par une majuscules mais pas les fonctions ni les variables).

    6) Certains prefixent la variable du type de celle ci (ex "int i_numero"), pour ou contre?
    Si le type est logique (i pour index et pas pour int), ca ne me derange pas trop mais je ne vois pas tres bien ce que ca apporte. Sinon, on arrive aux absurdites du SDK de MS ou par compatibilite on utilise des prefixes qui ne decrivent plus l'etat des choses.

  11. #11
    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 Emmanuel Delahaye
    Le minimum est fixé par la norme. De mémoire : [LIST][*]C90 : 8 caractères.
    Je suis a peu pres certains que c'est six caracteres sans distinction majucule/minuscule pour les identificateurs a liaison externe (pour pouvoir les mettres dans un mot de 36 bits avec un codage utilisant 6 bits par caracteres).

    Comme je l'ai deja ecrit par ailleurs, je ne tiendrais compte de ces limitations que s'il est connu qu'une des cibles l'a.

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/04/2011, 09h22
  2. Réponses: 6
    Dernier message: 25/08/2009, 11h15
  3. Réponses: 2
    Dernier message: 13/09/2007, 19h30
  4. Nom de variable = nom de fonction
    Par Julien DJU dans le forum MATLAB
    Réponses: 2
    Dernier message: 03/07/2007, 10h30
  5. Réponses: 2
    Dernier message: 24/08/2006, 10h46

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