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

GTK+ avec C & C++ Discussion :

warning sur le paramètre d'une fonction


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé Avatar de doderic
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 215
    Par défaut warning sur le paramètre d'une fonction
    Hello! J'ai un problème de warning dans une application que j'écris. En dessous de cette note le texte de warning:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    gestion_db.h:9: warning: "struct ihm" declared inside parameter list
    gestion_db.h:9: warning: its scope is only this definition or declaration, which is probably not what you want
    gestion_db.h:10: warning: "struct ihm" declared inside parameter list
    gestion_db.h:11: warning: "struct ihm" declared inside parameter list
    gestion_db.h:12: warning: "struct ihm" declared inside parameter list
    gestion_db.h:13: warning: "struct ihm" declared inside parameter
    En fait j'ai lié à des boutons des fonctions où les prototypes ressemblent à ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void function(GtkWidget *widget, struct ihm *p);
    que j'appelle comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g_signal_connect(G_OBJECT(bouton),"clicked",G_CALLBACK(function),p);
    J'ai pas mal de fonctions lié de cette manière auxquelles je passe le pointeur p en paramètre pour pouvoir accéder aux membres de la structure.
    N.B: Je signale quand même que le programme marche très bien malgré ces warning. Que dois-je comprendre?

    Bonne suite à tous!

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,

    La seule raison que je vois c'est que struct ihm ne soit pas déclarée avant son utilisation.

  3. #3
    Membre confirmé Avatar de doderic
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 215
    Par défaut
    Citation Envoyé par gege2061 Voir le message
    Bonjour,

    La seule raison que je vois c'est que struct ihm ne soit pas déclarée son utilisation.
    J'ai rien compris à ce que tu as dis. T'es sûr que le phrase est correcte?

  4. #4
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par doderic Voir le message
    J'ai rien compris à ce que tu as dis. T'es sûr que le phrase est correcte?
    Il manquant juste un mot...

  5. #5
    Membre confirmé Avatar de doderic
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 215
    Par défaut
    Citation Envoyé par gege2061 Voir le message
    Il manquant juste un mot...
    S'il te plait refais ta phrase et sois plus explicite ce serait sympa

  6. #6
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par doderic Voir le message
    S'il te plait refais ta phrase et sois plus explicite ce serait sympa
    Ce sont les bases du C, avant d'utiliser un nouveau type, il faut qu'il soit déclaré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct ihm
    {
      /* ... */
    }
     
    void function(GtkWidget *widget, struct ihm *p);
    Ou dans un autre fichier d'entête :
    Code ihm.h : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    struct ihm
    {
      /* ... */
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include "ihm.h"
     
    void function(GtkWidget *widget, struct ihm *p);

  7. #7
    Membre confirmé Avatar de doderic
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 215
    Par défaut
    Mis ce que t'as écrit c'est ce que j'ai fait. je ne vois pas la différence entre ce que tu mets et ce que j'ai mis plus haut. Bien entendu que j'ai déclaré la structure (dans un fichier d'en tête). Je rappelle que le programme marche mais je veux dégager ces warning. merci de bien relire la question (si tu veux bien) A+

  8. #8
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Je suis d'accord avec ce que te dit gege, es-tu sûr et certain que ta struct ihm est visible à l'endroit où le warning est émis ? Le warning est émis dans un .h, est-ce que ce .h inclus le fichier contenant la définition de la struct ihm ?
    Tu dois pouvoir t'en sortir en mettant struct ihm; au début de ton fichier gestion_db.h

  9. #9
    Membre confirmé Avatar de doderic
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 215
    Par défaut
    Citation Envoyé par teuf13 Voir le message
    Je suis d'accord avec ce que te dit gege, es-tu sûr et certain que ta struct ihm est visible à l'endroit où le warning est émis ? Le warning est émis dans un .h, est-ce que ce .h inclus le fichier contenant la définition de la struct ihm ?
    Tu dois pouvoir t'en sortir en mettant struct ihm; au début de ton fichier gestion_db.h


    Non! La structure struct ihm se trouve dans un fichier nommé IHM_Serveur.h. J'ai inclus ce header dans gestion_db.c et non dans son fichier d'en-tête gestion_db.h(là ou le warning est émis). Veux tu dire que je dois le mettre dans le header plutot que dans le fichier .c?

  10. #10
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    gestion.h se plaint qu'il ne connaît pas ta structure... Donc oui, soit tu inclues le .h qui va bien dans gestion.h, soit tu tentes de faire une forward declaration de la structure qui va bien :

  11. #11
    Membre confirmé Avatar de doderic
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 215
    Par défaut
    Citation Envoyé par teuf13 Voir le message
    soit tu tentes de faire une forward declaration de la structure qui va bien :
    j'avais pas encore entendu ça (ne la trouve pas bizarre). c'est quoi cette forward declaration? et le , je le mets dans gestion_db.c? explique moi

  12. #12
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Il faut que tes déclarations dans le .h sachent que ta structure existe, donc c'est dans le .h qu'il faut filer des infos sur cette structure! Ca fait plusieurs messages qu'on essaie de te faire comprendre ça. Expérimente un peu avec ce qu'on t'as dit dans le .h, il ne peut pas t'arriver de trucs trop graves

  13. #13
    Membre confirmé Avatar de doderic
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 215
    Par défaut
    Citation Envoyé par teuf13 Voir le message
    Ca fait plusieurs messages qu'on essaie de te faire comprendre ça.
    C'est pas la peine de faire semblant pour m'injurer. c'est pas cool. j'ai pigé pour le header et c'est ce que je vais faire finalement. mais ça n'empêche pas que je veuille savoir sur le forward declaration. Après tout tu me réponds si tu veux. merci quand même. A+

  14. #14
    Membre confirmé Avatar de doderic
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 215
    Par défaut
    tâche d'être plus serein. m'insulter ne t'arrange en rien.

  15. #15
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    De mon point de vue, il n'y a rien d'insultant dans mon message, juste un peu d'énervement. Je ne change donc rien, je laisse un autre modérateur s'en occuper s'il juge que mon message n'est pas suffisamment correct.

  16. #16
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Pour la forward declaration, le premier resultat obtenu sur google donne une piste même s'il est appliqué au C++...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/03/2014, 23h10
  2. Réponses: 11
    Dernier message: 30/01/2014, 12h59
  3. Créer un warning sur l'utilisation d'une fonction PHP
    Par Gwen_59 dans le forum Langage
    Réponses: 7
    Dernier message: 14/05/2013, 15h09
  4. Réponses: 5
    Dernier message: 14/09/2012, 21h20
  5. Réponses: 5
    Dernier message: 13/10/2005, 12h46

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