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 :

Pas de typedef?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 Pas de typedef?
    Salut,

    Quand je regarde la lib standard et pas mal de code chez les autres, on note que les structs et enums font rarement l'objet d'un typedef..
    Pourquoi?

    Je fais systematiquement des "typedef struct { } montype" ou des "typedef enum { } montype" pour eviter de retaper "struct" ou "enum"

    Thanks

  2. #2
    Membre Expert Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par défaut
    Effectivement, c'est une bonne question.
    Utiliser les typedef facilite la lecture du code, je trouve.

  3. #3
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Un typedef est un peu plus abstrait qu'une structure. Il permet notamment de cacher le fait que c'est une structure, voire cacher l'ensemble du contenu (ADT). Utiliser une etiquette de structure a le merite de bien montrer qu'il s'agit d'une structure. Mais il faut taper six caracteres de plus (sept en comptant l'espace) !

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Gruik
    Quand je regarde la lib standard et pas mal de code chez les autres, on note que les structs et enums font rarement l'objet d'un typedef..
    Pourquoi?
    peut etre regardes tu en fait du code compilé avec un compilateur C++. si c'est cas, le C++ n'impose pas de réutiliser le mot clé "struct" a chaque fois que tu déclare une variable de ta structure (respectivement enum, union).

  5. #5
    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
    Moi je met des typedef presque toujours pour les structure, union, enumérations mais je suit les règles de ED qui permettent rien qu'en lisant le nom de savoir de quel type il s'agit, voir ici
    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 !

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Franck.H
    Moi je [...] voir ici
    il y a une autre facon de procéder pour savoir le type, autre que par le nom (quand on utilise des outils tels que IntelliSense) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    typedef _MonType {
        //les champs
    } MonType, *pMonType;

  7. #7
    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 toxcct
    il y a une autre facon de procéder pour savoir le type, autre que par le nom (quand on utilise des outils tels que IntelliSense)
    Ouais pour sûr mais je ne suis pas un adepte de ce genre d'outils
    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 !

  8. #8
    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 Gruik
    Salut,

    Quand je regarde la lib standard et pas mal de code chez les autres, on note que les structs et enums font rarement l'objet d'un typedef..
    Pourquoi?

    Je fais systematiquement des "typedef struct { } montype" ou des "typedef enum { } montype" pour eviter de retaper "struct" ou "enum"

    Thanks
    C'est un sujet à débats.

    Pendant longtemps, j'ai utilisé le typedefs systématiquement. Puis, je me suis aperçu que pour clarifier les choses, je devais ajouter un suffixe au type pour renseigner l'auteur sur sa nature (_s pour struct, _e pour enum etc.), ce qui limite sérieusement l'intérêt du typedef, puisque sans typedef, cette information accompagne naturellement le type , .

    Ma tendance actuelle est donc d'utiiser les typedefs pour les types véritablement abstraits dont l'utilisateur n'a pas a connaitre ni la nature, ni le contenu (ADT), et la version sans typedefs pour tous les autres cas.

Discussions similaires

  1. erreur de compil sur typedef : comprends pas
    Par antana dans le forum Débuter
    Réponses: 5
    Dernier message: 03/02/2010, 11h43
  2. Réponses: 5
    Dernier message: 14/11/2009, 01h11
  3. Programmer encore en VB 6 c'est pas bien ? Pourquoi ?
    Par Nektanebos dans le forum Débats sur le développement - Le Best Of
    Réponses: 85
    Dernier message: 10/03/2009, 14h43
  4. typedef qui ne fonctionne pas
    Par Bakura dans le forum C++
    Réponses: 2
    Dernier message: 11/11/2007, 12h34

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