Typedef structure

Résolu
JeVeuxJusteEtreIngenieure -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour,

Dans quels cas faut-il utiliser "typedef" lorsqu'on définit une nouvelle structure dans un code ?

Merci beaucoup :)))) 


Macintosh / Safari 15.6.1

2 réponses

  1. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     

    bonjour,

    à chaque fois que tu veux utiliser une définition de type perso:

    typedef int ENTIER // pour écrire ENTIER dans le code au lieu de int

    (si tu veux absolument écrire en français, par exemple)

    typedef struct _toto {
    
        ......
    
    } TOTO;
    
    //pour écrire
    
    TOTO machin;
    
    //au lieu de
    
    struct _toto machin;
    0
    1. JeVeuxJusteEtreIngenieure
       

      Super merci beaucoup ! 

      0
  2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     

    Bonjour,

    Je recommande de nommer les structures avec le suffixe _t, tout en minuscule. Ces deux blocs de code sont parfaitement équivalents :

    struct _ma_structure_t {
      int attribut1;
      int attribut2;
    }
    
    typedef struct _ma_structure_t ma_structure_t; 
    typedef struct _ma_structure_t {
       int attribut1;
       int attribut2;
    } ma_structure_t;
    • En C et en C++, tu n'es pas obligé(e) d'utiliser un typedef quand tu déclares une structure. Typedef ou pas, tu peux très bien utiliser struct _ma_structure_t dans tout ton code, ce sera parfaitement correct.
    • En C++, tu n'as même pas besoin de faire de typedef, tu pourrais parler indifféremment de struct _ma_structure_t ou directement de _ma_structure (idem pour les classes).
    • En C et en C++, le nom avec ou sans le mot clé struct peut être le même. Tu peux donc parfaitement écrire ne pas utilisé de préfixe _ devant le type intermédiaire :
    typedef struct ma_structure_t {
      int attribut1;
      int attribut2;
    } ma_structure_t;

    Bonne chance

    0