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 :

probleme fonction return struct


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Par défaut probleme fonction return struct
    je ne comprends pas mon erreur
    sniiiifff


    j'ai un fichier fonctions.h :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <cv.h>
    #include <highgui.h>
     
    struct HoughResult
    {
        CvPoint pt;
        int rayon;
    };
     
    /* Hough */
    HoughResult HoughCircle(IplImage *src, int Rmin, int Rmax, int pt0x, int ptfx, int pt0y, int ptfy);
    J'ai un fichier hough.c :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include "fonctions.h"
     
    HoughResult HoughCircle(IplImage *src, int Rmin, int Rmax, int pt0x, int ptfx, int pt0y, int ptfy)
    {
    HoughResult *Result;
    ...
    return Result;
    }
    j'ai un fichier main ou j'utilise la fonction HoughCircle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #include "fonctions.h"
    int main()
    {
    ...
    HoughCircle(src, 9, 12, pt0.x, ptf.x, pt0.y, ptf.y);
    ...
    return 0;
    }
    et j'ai pleins d'erreur ^^

    fonctions.h:26: error: syntax error before "HoughCircle"
    fonctions.h:26: warning: data definition has no type or storage class
    hough.c:3: error: syntax error before "HoughCircle"
    hough.c: In function `HoughCircle':
    hough.c:6: error: `HoughResult' undeclared (first use in this function)
    hough.c:6: error: (Each undeclared identifier is reported only once
    hough.c:6: error: for each function it appears in.)
    hough.c:6: error: syntax error before "Result"
    hough.c:71: error: `Result' undeclared (first use in this function)
    hough.c:82: error: syntax error before "else"
    hough.c: At top level:
    hough.c:89: error: syntax error before "return"
    Process terminated with status 1 (0 minutes, 0 seconds)
    je n'ai déclaré ma structure que dans fonction.h
    mais quand je la déclare partout ça bug aussi
    je pense que c'est une erreur de débutant mais bon ^^

  2. #2
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Salut,

    première erreur que je constate, c'est que tu nommes ton fichier d'entête fonction.h alors que tu inclues fonctions.h


    Change déjà ça, puis reposte les erreurs
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Par défaut
    Citation Envoyé par buchs Voir le message
    Salut,

    première erreur que je constate, c'est que tu nommes ton fichier d'entête fonction.h alors que tu inclues fonctions.h


    Change déjà ça, puis reposte les erreurs
    c'est une erreur de frappe c'est bien fonctions.h qui est utilisé dans mes fichiers

  4. #4
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Ok,

    Dans ton .h, tu déclares la structure de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    struct HoughResult
    {
        CvPoint pt;
        int rayon;
    };
    Ce qui implique que dans ton code, tu dois instancier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    struct HoughResult Result;
    Il manque le mot struct chez toi donc.

    Si tu veux éviter d'avoir à le rajouter dans tout ton fichier .c, tu peux modifier la déclaration de ta strucutre dans ton .h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    typedef struct
    {
        CvPoint pt;
        int rayon;
    } HoughResult;
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Par défaut
    Citation Envoyé par buchs Voir le message
    Ok,

    Dans ton .h, tu déclares la structure de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    struct HoughResult
    {
        CvPoint pt;
        int rayon;
    };
    Ce qui implique que dans ton code, tu dois instancier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    struct HoughResult Result;
    Il manque le mot struct chez toi donc.

    Si tu veux éviter d'avoir à le rajouter dans tout ton fichier .c, tu peux modifier la déclaration de ta strucutre dans ton .h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    typedef struct
    {
        CvPoint pt;
        int rayon;
    } HoughResult;
    Ca fonctionne nickel merci
    Je me doutais bien que c'était une erreur de débutant ^^
    A+

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

Discussions similaires

  1. [XSL]Probleme fonction recursive
    Par Le-Cortex dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 12/12/2005, 15h10
  2. [Mail] Probleme fonction mail()
    Par tissot dans le forum Langage
    Réponses: 1
    Dernier message: 14/11/2005, 12h55
  3. problème fonctions callback
    Par youp_db dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 02/10/2005, 14h47
  4. probleme fonction gethostbyname
    Par oclone dans le forum Développement
    Réponses: 6
    Dernier message: 14/04/2005, 10h31
  5. probleme fonction syntaxe
    Par gIch dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/02/2005, 09h52

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