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 :

Problème modulation


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 9
    Par défaut Problème modulation
    Bonjour tout le monde.
    Je suis désespéré, celà fait des heures que je cherche, je trouve pas, j'espère trouver ma réponse ici, voilà mon problème :
    J'apprend le C depuis très peu de temps, je suis les cours de C du site et j'en suis a la partie sur la programmation par modulation, c'est à dire tout simplement le fait de ne pas mettre toutes nos fonctions dans le même fichiers.

    Alors c'est sa mon problème, ce que j'en ai compris, je fais un fichier exemple.c dans lequel j'écris mes fonctions, ensuite je crée un autre fichier exemple.h dans lequel je met les prototypes de ces fonctions, et ensuite dans le main.c je met au début #include "exemple.h" et ensuite je peux appeler mes fonctions comme si elles étaient juste avant ma fonction main, c'est celà ?

    Donc, si je n'ai pas dit de bêtise je ne comprend vraiment pas, je vous montre l'exemple tout con que j'ai fais, si vous pourriez me dire pourquoi sa ne fonctionne pas vous me feriez faire un grand pas parce-que je suis vraiment bloqué à ce stade depuis 3 jours.



    fichier math.c :
    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 <stdlib.h>
    #include "math.h"
     
     
    //Ici je met les foctions permettant de faire le carré d'un nombre ect...
     
    double triple (double nt)
    {
     double resultat=0;
     resultat= 3 * nt;
     return resultat;
    }


    fichier math.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #ifndef MATH_H_INCLUDED
    #define MATH_H_INCLUDED
     
    double triple (double nt);
     
    #endif // MATH_H_INCLUDED

    fichier main.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
    #include <stdio.h>
    #include <stdlib.h>
    #include "math.h"
     
     
    int main(int argc, char *argv[])
    {
        double nt=0;
     printf("tapes un nombre je te donnes son triple\n\n");
     scanf("%ld", &nt);
     printf("le triple du nombre que tu as taper est %lf\n\n", triple(nt));
       system("PAUSE");
        return 0;
    }




    Alors ?fouttez vous de moi oui mais aidez moi silvouplais....

    EDIT : J'ai oublié, voici le message d'erreur lors de la compilation :


    ||=== Test MODULATION, Debug ===|
    obj\Debug\main.o||In function `main'
    C:\Documents and Settings\xxxx\Bureau\Caca\C\Test MODULATION\main.c|11|undefined reference to `_triple'|
    ||=== Build finished: 1 errors, 0 warnings ===|

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    3 choses principales :

    • tu definis un double et tu lis avec un format entier (%d).
    • dans le .h, il faut mettre "extern double triple(double nt);"
    • Appeler son fichier "math.h" n'est pas une bonne idee, vu que c'est le nom de l'entete standard...


    et enfin il faut que tu linkes les 2 fichiers ensemble...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 9
    Par défaut C'est fait
    Oké, je l'ai fait, mais toujours le même message d'erreur.
    Pour math.h c'est pas grave puisqu'il fait la différence entre "math.h" et <math.h> non ?


    Pour link les 2 fichiers, je sais pa socmment on fait mais j'ai mit dans le propriétes de chacun "linf file" sa suffit ?

  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par gadjopilo Voir le message
    Oké, je l'ai fait, mais toujours le même message d'erreur.
    Pour math.h c'est pas grave puisqu'il fait la différence entre "math.h" et <math.h> non ?
    Hum, à votre place, je ne tenterai pas le diable. La différence faite entre <> et "" intervient au niveau de la configuration du compilateur.

    Citation Envoyé par gadjopilo Voir le message
    Pour link les 2 fichiers, je sais pa socmment on fait mais j'ai mit dans le propriétes de chacun "linf file" sa suffit ?
    Quel est le compilateur / linkeur / IDE / environement utilisé ?
    Avec gcc, on aura un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    gcc -c main.c -o main.o
    gcc -c math.c -o math.o
    gcc main.o math.o -o main

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 9
    Par défaut Merci
    Merci pour ta réponse, alors j'ai modifié math.c et math.h par homme.c et homme.h j'ai essayé de linker les deux fichier, j'en suis arrivé a avoir 0 erro et 0 warning, mais l'executable ne s'est pas creer, 'jai compilé ect...je trouve pas, je suis sur Codeblocks.
    voilà le message après compilation

    -------------- Build: Debug in Test MODULATION ---------------

    Linking console executable: bin\Debug\Test MODULATION.exe
    homme.h.gch: file not recognized: File format not recognized
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 0 seconds)
    0 errors, 0 warnings

  6. #6
    Membre chevronné Avatar de cmoibal
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2007
    Messages : 361
    Par défaut
    il y a une erreur dans le fichier homme.h

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

Discussions similaires

  1. Redhat 5 problème module snapapi
    Par korova dans le forum RedHat / CentOS / Fedora
    Réponses: 0
    Dernier message: 02/04/2008, 22h40
  2. Problème module WIN32::OLE
    Par ffaure89 dans le forum Modules
    Réponses: 4
    Dernier message: 29/02/2008, 09h28
  3. Problème Module Geo::Google
    Par Pinoute dans le forum Modules
    Réponses: 1
    Dernier message: 03/01/2008, 14h48
  4. Réponses: 8
    Dernier message: 21/03/2007, 20h09
  5. problème module CGI.pm(debutant)
    Par Shyboy dans le forum Web
    Réponses: 2
    Dernier message: 13/06/2006, 18h46

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