Ajouter des modules définies par l'utilisateur

Résolu
boualiasma Messages postés 393 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 23 décembre 2011 - 17 août 2009 à 09:42
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 21 août 2009 à 09:14
Bonjour,

J'ai utilise dans mon programme principal "main.c deux modules :
- "calcul.c" et "calcul.h"
- "traitement.c" et "traitement.h"
Est ce que je compile les modules puis le programme principal ou bien le programme principal seulement ?
Est ce que je lance l'exécution à partir le programme principal ?

J'ai compilé les les modules puis le programme principal puis j'ai
lancé l'exécution à partir le programme principal.
Le programme marche bien. Mais, j'ai deux warning:

- warning C4013: 'calcul' non défini(e) ; extern retournant int pris par défaut
- warning C4013: 'traitement' non défini(e) ; extern retournant int pris
par défaut

Comment on va résoudre ceci ?

J'ai mis dans "main.c"

#include "calcul.h"
#include "traitement.h"

J'ai mis dans "calcul.c"

#include "calcul.h"

J'ai mis dans "traitement.c"
#include "traitement.h"

le programme principal "main.c" est :
 #include <stdio.h>
#include "calcul.h"
#include "traitement.h"
int main ()
 {
 .... ...
 calcul ( );
 traitement ();
 ........
 return 0 ;
 }
 


le module "calcul.h" est :

#ifndef__CALCUL_H
#define__CALCUL_H
 
//les prototypes des fonctions
...
 
#endif


le module "traitement.h" est :

#ifndef__TRAITEMENT_H
#define__TRAITEMENT_H
 
//les prototypes des fonctions
...
#endif


le module "calcul.c" est :
int calcul ()
{
.......
.......
 
return  0 ;
 
}



le module "traitement.c" est :
int  traitement ()
{
.........
..........
return  0;
 
}

J'ai déjà inclue des fichiers "*.h" dans le dossier nommé "fichiers d'entêtes" du mon projet et les fichiers ".c" dans le dossier nommé "fichiers sources" du mon projet C sous Visual Studio 2008.

Mais, les mêmes warnings s'affichent !!
Il y a astuce pour inclure les modules définies par l'utilisateur ?

Merci.

2 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
21 août 2009 à 09:14
Salut,

Il faut que tu déclares ces fonctions. Par exemple, pour calcul, il faut que tu la déclares dans calcul.h :

int calcul(int *a,int *b,int *c, int *d);
3
boualiasma Messages postés 393 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 23 décembre 2011 5
17 août 2009 à 16:46
Bonjour,

- Les fichiers calcul.h et traitement.h sont bien dans le même répertoire que main.c
- J'ai déjà inclue des fichiers "*.h" dans le dossier nommé "fichiers d'entêtes" du mon projet et les fichiers ".c" dans le dossier nommé "fichiers sources" du mon projet
- Les deux warning apparaissent bien à la compilation de main.c ?
Oui. dans main.c seulement.
- je déclare les fonctions dans les fichiers header comme suit:

le code de "calcul.h"
#ifndef CALCUL_H
#define CALCUL_H
 
int somme(int *a, int *b); 
int multiplication(int *a, int *b); 
#endif

Le code de "calcul.c
#include <conio.h>
#include <stdio.h>
 
#include "calcul.h" 
 
int somme(int *a, int *b) {return (*a)+(*b);}
int multiplication(int *a, int *b) {return (*a)*(*b);}
 
int calcul(int *a,int *b,int *c, int *d)
{
   /* int a,b, c,d;
    printf("donner a=");
scanf("%d",&a);
    printf("\ndonner b =");  
scanf("%d",&b),*/
printf("a=%d et b=%d\n",*a,*b);
    *c=somme(a,b);
    *d= multiplication(a,b);
    printf("\n c=%d et d=%d\n",*c,*d);
 
    return 0;
}




Bonjour,

La compilation et l'exécution du programme se passe bien.

- warning C4013: 'calcul' non défini(e) ; extern retournant int pris par défaut
- warning C4013: 'traitement' non défini(e) ; extern retournant int pris par défaut

Signifie quoi ces deux warning ? pas d'effets ?

Merci.
0
Rejoignez-nous