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 :

warning compilation sur tableau de pointeurs de fonctions


Sujet :

C

  1. #1
    Membre averti Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Points : 407
    Points
    407
    Par défaut warning compilation sur tableau de pointeurs de fonctions
    Bonjour,
    Avec le code suivant, j'ai un warning de compilation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dset_hmi_main.c:8: warning: initialization from incompatible pointer type
    code source :
    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
     
    void add_int_trace(char * message)
    {
       printf("message=<%s>\n",message)
    }
     
    int (*ptr_list_proc[1])() = {
          add_in_fic_trace
    };
     
    int main(argc,argv)
       int argc;
       char *argv[];
    {
       exit(8);   
    }
    Quelle est la bonne syntaxe ?
    Merci

  2. #2
    Expert éminent sénior
    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
    Points : 13 926
    Points
    13 926
    Par défaut
    Le prototype des fonctions doit correspondre.
    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>
    void add_int_trace(char * message)
    {
       printf("message=<%s>\n",message)  ;
    }
     
    void  (*ptr_list_proc [1])(char*)= { add_int_trace };
     
    int main(int argc, char* argv[])
    {
        ptr_list_proc[0]("message");
        return 0;
    }
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  3. #3
    Membre averti Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Points : 407
    Points
    407
    Par défaut
    Bonjour,
    j'obtiens toujours le même warning :
    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
    >linux awalter 188>: more test.c
    void add_in_fic_trace(char * message)
    {
            printf("message=<%s>\n",message);
    }
     
    int (*ptr_list_proc[1])(char *) = { add_in_fic_trace };
     
    int main (int argc,char * argv[])
    {
       exit(8);
    }
     
    >linux awalter 189>: cc test.c -o test
    test.c:6: warning: initialization from incompatible pointer type
    >linux awalter 190>:

  4. #4
    Expert éminent sénior
    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
    Points : 13 926
    Points
    13 926
    Par défaut
    add_in_fic_trace() retourne void alors que le tableau est de pointeurs sur fonctions retournant int. Les prototypes ne sont pas les mêmes.
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  5. #5
    Membre averti Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Points : 407
    Points
    407
    Par défaut
    Ah, oui ,c'est vrai.
    merci

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

Discussions similaires

  1. Compilation via tableau de pointeurs de fonctions
    Par Mixikin dans le forum Bibliothèques, systèmes et outils
    Réponses: 4
    Dernier message: 22/04/2014, 00h53
  2. problème de compilation sur tableau de List générique
    Par Benoit_T dans le forum Delphi .NET
    Réponses: 3
    Dernier message: 25/03/2009, 16h09
  3. tableau de pointeur de fonction
    Par exhortae dans le forum C
    Réponses: 2
    Dernier message: 31/12/2007, 12h33
  4. Tableau de pointeur de fonction
    Par Gryzzly dans le forum C
    Réponses: 7
    Dernier message: 31/12/2005, 10h47
  5. Tableau de pointeurs de fonctions
    Par Alp dans le forum C++
    Réponses: 7
    Dernier message: 29/10/2005, 13h19

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