Ajouter des modules définies par l'utilisateur

[Résolu]
Signaler
Messages postés
393
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
23 décembre 2011
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
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

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
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);
Messages postés
393
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
23 décembre 2011
5
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.