Partage
  • Partager sur Facebook
  • Partager sur Twitter

Structures

Un problème de compilation

Sujet résolu
    8 juin 2006 à 13:00:21

    Bonjour a tous!

    LOrsque je m'entrainais sur les structures du cours de M@teo, j'ai essayé de compiler un de ses codes, sur l'un de mes projets d'entrainement contenant quelques de mes fonctions,, mais la compilation plante. Voila les fichiers et l'erreur:

    Main.c

    #include <stdio.h>
    #include <stdlib.h>
    #include "func.h"


    func.h

    long sommeTableau(long tableau[], long tailleTableau);

    void triplerDeuxNombres(long *pointeurNombreUn, long *pointeurNombreDeux);

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

    void initialiserCoordonnees(Coordonnees* point);


    func.c

    long sommeTableau(long tableau[], long tailleTableau)
    {
        long i;
        long somme = 0;
        for(i = 0 ; i < tailleTableau ; i++)
        {
            somme += tableau[i];
        }
        return somme;
    }

    void triplerDeuxNombres(long *pointeurNombreUn, long *pointeurNombreDeux)
    {
        *pointeurNombreDeux *= 3;
        *pointeurNombreUn *= 3;
    }

    void initialiserCoordonnees(Coordonnees* point)
    {
        (*point).x = 0;
        (*point).y = 0;
    }


    Erreur:
    Image utilisateur
    • Partager sur Facebook
    • Partager sur Twitter
      8 juin 2006 à 13:05:54


          point->x = 0;
          point->y = 0;


      c'est moins lourd
      • Partager sur Facebook
      • Partager sur Twitter
        8 juin 2006 à 13:57:23

        Ton fichier Main.c ne sert à rien actuellement.

        Il faut bien comprendre que la compilation d'un ensemble de fichiers sources, c'est une succession de compilation de chaque fichier source. Chacun est transformé en fichiers objet.
        (Vient ensuite un autre processus, l'édition des liens, qui réunit tout le bazar pour former un executable.)

        Donc, chaque fichier source doit être autonome. Les messages d'erreur devraient te mettre sur la voie. Le compilateur ne reconnait pas la structure Coordonnees. Pourquoi ? Tout simplement parce que ce fichier ne le mentionne pas.
        Prend ton fichier func.c, et demande-toi où est-ce qu'il y a la moindre indication sur la signification du terme Coordonnees à la ligne 18.
        Si tu ne trouves pas, c'est normal, et c'est une erreur. Ce qu'il faut, c'est donc

        #include "func.h"


        au début de ton code.
        Où se trouve maintenant la signification du terme Coordonnees dans le fichier func.c ?

        Facile, dans le fichier func.h, dont le contenu sera inséré à la place de la directive #include de func.c avant la phase de compilation.

        • Partager sur Facebook
        • Partager sur Twitter
          8 juin 2006 à 19:40:22

          Merci pour ton explication très claire ca m'a beaucoup aidé! Je n'avais jamais vu ça sous cet angle, c'est vrai, merci...
          • Partager sur Facebook
          • Partager sur Twitter

          Structures

          × 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