Declarer un type dans differents fichiers sources d'un projet
Bonjour,
Dans le cadre d'un exo je dois programmer une liste chainée dynamique.
Je develloppe sous dev c++ et je gere l'exo sous forme de projet, j'ai donc un fichier pour mon main et d'autres pour les fonction s et procedures.
Dans mon main j'ai declaré une structure et un type pointant sur cette structure.
Mon type est parfaitement reconu dans le main mais dès que je veux m'en servir dans un autre fichier source le compilateur ne le reconnait pas. Alors faut il le stocker dans une bibliotheque et l'inclure dans chaque source j'ai creusé le sujet et j'ai rien trouvé alors si vous avez une idée sur la question ca m'aiderais beaucoup.
merci d'anvance.
ca c'est mon main
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| #include <stdio.h>
#include <stdlib.h>
//************************DECLARATION DES TYPES ET STRUCTURES******************
typedef struct element
{
//stockage de la valeur
int val;
//lien vers element suivant
struct element *suivant;
}t_el;
//*****************************************************************************
int main (int argc,char *argv[])
{
//************************DECLARATION DES VARIABLES****************************
t_el *deb_liste;
int val;
//*****************************************************************************
//initialisation du debut de liste
deb_liste = NULL;
//ajout d'un element en debut de liste
printf ("Saisir la valeur de l'element a ajouter : ");
scanf ("%d",&val);
printf ("\n");
deb_liste = insertion (deb_liste,val);
printf ("val = %d\n",deb_liste->val);
system ("PAUSE");system ("CLS");
}
et ca c'est une fonction stocker dans un fichier a part
t_el *insertion (t_el *debut,int val)
//cette fonction a pour but d'ajouter un element en debut de liste
//parametre par valeur val type entier
//parametre par adresse debut type pointeur de structure element
{
//variables locales
t_el nouv;
//*****************
//reservation de la memoire pour le nouvel element
nouv = (t_el*) malloc (sizeof (t_el));
//remplissage des champs
nouv->val = val;
nouv->suivant = NULL;
//edition des liens
nouv->suivant = debut;
debut = nouv;
//renvoie du debut de liste
return (debut);
} |
et les messages d'erreurs
Citation:
1 H:\Prog C\Serie 3\Exo 1\insertion.c syntax error before '*' token
1 H:\Prog C\Serie 3\Exo 1\insertion.c syntax error before '*' token
H:\Prog C\Serie 3\Exo 1\insertion.c In function `insertion':
8 H:\Prog C\Serie 3\Exo 1\insertion.c `t_el' undeclared (first use in this function)
(Each undeclared identifier is reported only once
for each function it appears in.)
8 H:\Prog C\Serie 3\Exo 1\insertion.c syntax error before "nouv"
12 H:\Prog C\Serie 3\Exo 1\insertion.c `nouv' undeclared (first use in this function)
12 H:\Prog C\Serie 3\Exo 1\insertion.c syntax error before ')' token
15 H:\Prog C\Serie 3\Exo 1\insertion.c `val' undeclared (first use in this function)
16 H:\Prog C\Serie 3\Exo 1\insertion.c `NULL' undeclared (first use in this function)
19 H:\Prog C\Serie 3\Exo 1\insertion.c `debut' undeclared (first use in this function)
H:\Prog C\Serie 3\Exo 1\Makefile.win [Build Error] [insertion.o] Error 1