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 :

utilisation des ".h"


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 15
    Par défaut utilisation des ".h"
    Bonjour.

    Je lutte depuis 2 jours sur un problème avec mes ".h".
    Je crée différente structures, dans ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    typedef struct
    {
    	int positionX;
    	int positionY;
    	int type;
    	int alive;
    } pig;
    puis je fait un fichier avec des fonctions qui utilisent ses structures.
    Comme ces fonctions peuvent être utiliser dans d'autre fichiers, je les met dans mon les heat associer.

    dans level.c:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include "pig.h"
        ...
     
    pig * initPigTabLevel( level courantLevel)
    {
         ....
    }
    dans level.h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pig * initPigTabLevel( level);
    et voila le type d'erreur que j'ai à la compilation ....
    level.h:18: error: parse error before '*' token
    level.h:18: warning: type defaults to 'int' in declaration of 'initPigTabLevel'
    level.h:18: warning: data definition has no type or storage class
    Comme je débute en C je fait peu être une erreure grossière ( ou pas) mais si quelqu'un peu me donner 2-3 tuyaux ça serai sympa...

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par munck
    Comme je débute en C je fait peu être une erreure grossière ( ou pas) mais si quelqu'un peu me donner 2-3 tuyaux ça serai sympa...
    Bah level.h ne connait pas la structure pig. Il faut inclure pig.h dans level.h.

    Du coup plus besoin de l'inclure dans le .c

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 15
    Par défaut
    Euh bien j'ai deja testé et a chaque foi que je declare un élément de type "pig" (ou autre ) il y a une erreur ;
    error: 'pig' undeclared (first use in this function)

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par munck
    Euh bien j'ai deja testé et a chaque foi que je declare un élément de type "pig" (ou autre ) il y a une erreur ;
    error: 'pig' undeclared (first use in this function)
    Bon montre nous pig.h et ton fichier .c

    Au fait, en général on met une majuscule à la première lettre d'une structure.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 15
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    typedef struct
    {
    	int positionX;
    	int positionY;
    	int type;
    	int alive;
    } pig;
    et Deux fichier .c important:

    calculate.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
    #include "calculate.h"
    #include "level.h"
    #include "pile.h"
    #include "gpl.h"
    #include "pig.h"
     
    #include <stdio.h>
    #include <stdlib.h>
     
     
    void play(level courantLevel, gpl courantGpl, pig * pointeur, pile * pHolePile)
    {	
    ......
     
     
    }
    .....
    et level.c:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include "level.h"
     
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    ...
     
    pig * initPigTabLevel( level courantLevel)
    {
    ....
    }...

    Remarque tout le code est disponible sur: http://munck06.free.fr/mesDoc/projetC/


    Mes dans tout les cas merci pour les réponces si rapides

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Mais dans level.h est-ce que tu as bien fais un #include "pig.h" ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 15
    Par défaut
    Bon y a du nouveaux. j'ai bien mi tout les "#include "xxxx.h" " dans les ".h" adéquat les est viré des ".c".

    les erreures sont alors:
    In file included from calculate.h:13,
    from calculate.c:10:
    pig.h:16: error: conflicting types for 'pig'
    pig.h:16: error: previous declaration of 'pig' was here

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

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