IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

ajouter des modules définis par l'utilisateur


Sujet :

C

  1. #1
    Débutant
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Points : 35
    Points
    35
    Par défaut ajouter des modules définis par l'utilisateur
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #include <stdio.h>
    #include "calcul.h"
    #include "traitement.h"
    int main ()
     {
     .... ...
     calcul ( );
     traitement ();
     ........
     return 0 ;
     }
    le module "calcul.h" est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #ifndef__CALCUL_H
    #define__CALCUL_H
     
    //les prototypes des fonctions
    ...
     
    #endif
    le module "traitement.h" est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #ifndef__TRAITEMENT_H
    #define__TRAITEMENT_H
     
    //les prototypes des fonctions
    ...
    #endif
    le module "calcul.c" est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int calcul ()
    {
    .......
    .......
     
    return  0 ;
     
    }
    le module "traitement.c" est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    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. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Il ne semble rien y avoir d'incorrect dans ce que tu décrit.

    Es tu sur que les définitions de garde sont corrects (IE : non définis ailleurs)

    Tu peux tenter de remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #ifndef__CALCUL_H
    #define__CALCUL_H
    ...
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #ifndef H_2009_08_17_CALCUL
    #define H_2009_08_17_CALCUL
    ...

    Pareil pour l'autre module.

  3. #3
    Débutant
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    J'ai modifie le programme un peu. Mais, les mêmes 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


    Le programme principal "main.c" est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    #include <stdio.h>
    #include "calcul.h"
    #include "traitement.h"
    int main ()
     {
     .... ...
     calcul ( );
     traitement ();
     ........
     return 0 ;
     }
    le module "calcul.h" est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    #ifndef CALCUL_H
    #define CALCUL_H
     
    //les prototypes des fonctions
    ...
     
    #endif
    le module "traitement.h" est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #ifndef TRAITEMENT_H
    #define TRAITEMENT_H
     
    //les prototypes des fonctions
    ...
    #endif
    le module "calcul.c" est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #include <stdio.h>
    #include "calcul.h"
     
    int calcul ()
    {
    .......
    .......
     
    return  0 ;
     
    }
    le module "traitement.c" est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #include <stdio.h>
    #include "traitement.h"
    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 !!

  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    • Les fichiers calcul.h et traitement.h sont bien dans le même répertoire que main.c ?
    • Si ce n'est pas le cas, la configuration des répertoires est elle OK ?
    • N'existe-t-il pas déjà deux fichier calcul.h et traitement.h vide ou incorrect que main.c utilise par erreur ?
    • Les deux warning apparaissent bien à la compilation de main.c ?
    • comment déclares tu tes fonctions dans les fichiers header ?

  5. #5
    Débutant
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Points : 35
    Points
    35
    Par défaut
    * Les fichiers calcul.h et traitement.h sont bien dans le même répertoire que main.c ?
    OUI.

    Si ce n'est pas le cas, la configuration des répertoires est elle OK ?
    Oui. 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

    * N'existe-t-il pas déjà deux fichier calcul.h et traitement.h vide ou incorrect que main.c utilise par erreur ?
    il n'existe pas

    * Les deux warning apparaissent bien à la compilation de main.c ?
    Oui. dans main.c seulement.
    * comment déclares tu tes fonctions dans les fichiers header ?
    le code de "calcul.h"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #ifndef CALCUL_H
    #define CALCUL_H
     
    int somme(int *a, int *b); 
    int multiplication(int *a, int *b); 
    #endif
    Le code de "calcul.c"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    #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;
    }

  6. #6
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par vivaviva Voir le message

    le code de "calcul.h"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #ifndef CALCUL_H
    #define CALCUL_H
     
    int somme(int *a, int *b); 
    int multiplication(int *a, int *b); 
    #endif
    Okay.

    Il manque la déclaration de calcul dans le fichier calcul.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #ifndef CALCUL_H
    #define CALCUL_H
     
    int somme(int *a, int *b); 
    int multiplication(int *a, int *b); 
    int calcul(/*paramètres qui vont bien*/);
     
    #endif

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/07/2010, 17h57
  2. Fonction défini par l'utilisateur
    Par m-mas dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/07/2005, 09h45
  3. SQL Server / Fonction définie par l'utilisateur
    Par borgfabr dans le forum Langage SQL
    Réponses: 3
    Dernier message: 08/03/2005, 15h14
  4. Modifier un type défini par l'utilisateur
    Par soazig dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/08/2004, 12h47
  5. Fonctions définies par l'utilisateur
    Par DiGueDao dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/06/2003, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo