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 avec des structures en paramètre de fonction


Sujet :

C

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 40
    Par défaut problème avec des structures en paramètre de fonction
    Bonjour,

    J'utilise une fonction issue de la bibliothèque GSL (GNU Scientific Library) que je n'ai pas modifié du tout :

    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
    24
    25
    26
    27
    28
    29
    static inline int cheb_eval_e(const cheb_series *cs, const double x, gsl_sf_result *result)
    {
      int j;
      double d  = 0.0;
      double dd = 0.0;
     
      double y  = (2.0*x - cs->a - cs->b) / (cs->b - cs->a);
      double y2 = 2.0 * y;
     
      double e = 0.0;
     
      for(j = cs->order; j>=1; j--) {
        double temp = d;
        d = y2*d - dd + cs->c[j];
        e += fabs(y2*temp) + fabs(dd) + fabs(cs->c[j]);
        dd = temp;
      }
     
      {
        double temp = d;
        d = y*d - dd + 0.5 * cs->c[0];
        e += fabs(y*temp) + fabs(dd) + 0.5 * fabs(cs->c[0]);
      }
     
      result->val = d;
      result->err = GSL_DBL_EPSILON * e + fabs(cs->c[cs->order]);
     
      return GSL_SUCCESS;
    }
    Cependant, quand je l'utilise dans mon projet (sous Windows, j'ai veillé à ajouter tous les fichiers nécessaires y compris celui contenant les structures utilisées par ma fonction) j'ai l'erreur suivante à la compilation (concernant la 1ère ligne de la fonction):

    expected ';', ',' or ')' before '*' token
    J'ai aussi un Warning sur la même ligne :

    type defaults to 'int' in declaration of 'cheb_series'
    Des idées d'où peut venir le problème?

    Merci d'avance!

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Vérifier que l'include définissant cheb_series a été fait.

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 40
    Par défaut
    ça n'était pas fait dans le fichier original (étrange), c'est corrigé mais maintenant j'ai l'erreur suivante:

    redefinition of typedef 'cheb_series'
    Le code pour la structure est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    typedef struct cheb_series_struct cheb_series;
    struct cheb_series_struct {
      double * c;   /* coefficients                */
      int order;    /* order of expansion          */
      double a;     /* lower interval point        */
      double b;     /* upper interval point        */
      int order_sp; /* effective single precision order */
    };

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    typedef struct {
      double * c;   /* coefficients                */
      int order;    /* order of expansion          */
      double a;     /* lower interval point        */
      double b;     /* upper interval point        */
      int order_sp; /* effective single precision order */
    }cheb_series_struct; //déclaration du type cheb_series_struct
    cheb_series_struct ton_cheb_series; //création d'une instance de ton type

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 40
    Par défaut
    Merci mais ça me dit maintenant pour la structure :

    conflicting types for cheb_series
    L'erreur est incompréhensible, il n'y aucun endroit où il peut y avoir conflit j'ai même un warning un peu bête :

    expected 'const struct cheb series *' but argument is of type 'const struct cheb series *'
    !!

    Merci d'avance pour vos idées.

  6. #6
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Peux-tu nous montrer ton code modifié?

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 146
    Billets dans le blog
    4
    Par défaut
    Ce qui est étrange c'est que tu dis ne pas avoir la structure dans le fichier, et que quand tu l'as rajouté tu as eu une erreur "redefinition", qui laisse supposer qu'elle y était !
    Ou alors tu l'as défini à un endroit maladroitement et le jeu des include déclenche ce message.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  8. #8
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 40
    Par défaut
    Merci pour vos réponses, l'erreur était stupide, il manquait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #ifndef _CHEBYSHEV_H_
    #define _CHEBYSHEV_H_
     
    ...
     
    #endif

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/05/2011, 12h55
  2. [AJAX] Liens chargés avec une fonction Ajax
    Par MrPiMs dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/03/2009, 16h19
  3. probléme avec des fonction caractére
    Par mioke dans le forum SAS Base
    Réponses: 6
    Dernier message: 01/03/2008, 12h03
  4. Réponses: 6
    Dernier message: 21/02/2008, 21h17
  5. problème avec des fonctions
    Par teen6517 dans le forum Langage
    Réponses: 1
    Dernier message: 12/03/2007, 13h34

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