Partage
  • Partager sur Facebook
  • Partager sur Twitter

cours stucture typedef

problème typedef

    11 mars 2006 à 21:50:26

    salut,
    voila j'ai commencé le cours sur les structures,et j'ai bien
    compris comment déclarer une structure, ainsi comment associer une variable à une structure, mais je suis carrément planté sur la notion typedef.
    code c

    typedef struct Coordonnees Coordonnees;
    struct Coordonnees
    {
        long x;
        long y;
    };


    j'ai bien compris la descième ligne et ce qui suit c'est la définition de notre structure cordonné que l'on doit le mettre dans un fichier .h.
    mais je n'ai pas compris bien l'utilité de la première instruction

    typedef struct Coordonnees Coordonnees;

    veuillez m'expliquer clairement si c'est possible avec un bon exemple cette notion typedef.
    zerotamsa
    • Partager sur Facebook
    • Partager sur Twitter
      11 mars 2006 à 21:54:27

      bah en fait quand tu écrira Coordonnees ( le quatrième mot ) ce sera pour l'ordi comme si tu écrivez struct Coordonnees( les 2e et 3e mots) ça t'évite à chaque fois de réécrire struct ... tu as compris ?
      • Partager sur Facebook
      • Partager sur Twitter
        11 mars 2006 à 22:02:55

        salut,
        un peu piègé.
        voulez vous bien m'éclaircir un peu avec une écriture SVP.
        zerotamsa
        • Partager sur Facebook
        • Partager sur Twitter
          11 mars 2006 à 22:07:17

          en fait lorque tu mets typedef, le truc qui suit équivaut à dire le truc d'après
          par exemple
          dans le typedef, struct coordonnees équivaut à dire coordonnees (t'as compris lol :p ?)
          • Partager sur Facebook
          • Partager sur Twitter
            11 mars 2006 à 22:15:07

            salut,
            c'est clair maintenant
            merci beaucoup.
            zerotamsa
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              11 mars 2006 à 22:17:00

              Quand tu déclare une variable de type "long" tu dois mettre :

              long maVariable;


              quand tu veux déclarer une variable de type de ta structure tu dois mettre :

              struct Coordonnees point;


              C'est embetant de mettre le struct à chaque fois alors tu rajoute la ligne que tu comprends pas.
              Cette ligne ca veut dire "Quand tu verras marqué 'Coordonnees', remplace le par 'struct Coordonnees' !!"
              Du coup dans ton programme tu as plus besoin de mettre le struct, quand tu déclare ta variable tu met

              Coordonnees point;

              et ca remplacera le "Coordonnees" par "struct Coordonnees".

              edit : c'est expliqué dans le tuto :)
              • Partager sur Facebook
              • Partager sur Twitter
                11 mars 2006 à 23:06:07

                merci Annacconda pour l'explication détaillé
                zerotamsa
                • Partager sur Facebook
                • Partager sur Twitter
                  12 mars 2006 à 10:45:24

                  A noter d'ailleurs qu'on peut condenser :

                  typedef struct Coordonnees {
                      long x;
                      long y;
                  } Coordonnees;


                  C'est exactement pareil mais on économise une ligne. ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    12 mars 2006 à 11:01:44

                    D'ailleurs on peut aussi écrire, ce qui est encore plus court :
                    typedef struct {
                        long x;
                        long y;
                    } Coordonnees;

                    Et typedef ça marche un peu avec tout :
                    typedef int entier;
                    entier a; /* a de type int. */

                    typedef unsigned char uchar[3];
                    uchar b; /* b tableau de 3 unsigned char. */

                    On remarque que ça marche comme une déclaration de variable, on ajoute le mot typedef devant, et l'identificateur de la variable sera le nom du type créé.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      12 mars 2006 à 11:09:20

                      Au fait louisclem j'ai une petite question pour ça...

                      Quand tu as :

                      typedef int p_f (char*‚ char*);

                      ... tu peux faire :

                      p_f (*point);

                      ... et ce sera un pointeur sur une fonction de type int et avec deux chaines pour paramètres ?

                      Merci !

                      ++.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        12 mars 2006 à 11:14:49

                        Oui, les parenthèses sont inutiles.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          12 mars 2006 à 11:27:04

                          Yeah trop bon merci.
                          • Partager sur Facebook
                          • Partager sur Twitter

                          cours stucture typedef

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown