boualiasma
Messages postés393Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention23 décembre 2011
-
17 août 2009 à 09:42
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDerniè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"
#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 ?
boualiasma
Messages postés393Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention23 décembre 20115 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