Précédent   Forum du club des développeurs et IT Pro > C et C++ > C
C Forum d'entraide technique sur le langage C. Avant de poster -> F.A.Q. C, Avant de poster.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 09/01/2013, 10h49   #1
awalter1
Membre éclairé
 
Avatar de awalter1
 
Inscription : août 2004
Messages : 881
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 881
Points : 316
Points : 316
Par défaut warning compilation sur tableau de pointeurs de fonctions

Bonjour,
Avec le code suivant, j'ai un warning de compilation :
Code :
dset_hmi_main.c:8: warning: initialization from incompatible pointer type
code source :
Code :
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
awalter1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 11h05   #2
diogene
Responsable Modération
 
Avatar de diogene
 
Homme Patrick Gonord
Enseignant Chercheur
Inscription : juin 2005
Messages : 5 488
Détails du profil
Informations personnelles :
Nom : Homme Patrick Gonord
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Enseignant Chercheur
Secteur : Enseignement

Informations forums :
Inscription : juin 2005
Messages : 5 488
Points : 13 125
Points : 13 125
Le prototype des fonctions doit correspondre.
Code :
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 !
diogene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 12h10   #3
awalter1
Membre éclairé
 
Avatar de awalter1
 
Inscription : août 2004
Messages : 881
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 881
Points : 316
Points : 316
Bonjour,
j'obtiens toujours le même warning :
Code :
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>:
awalter1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 13h30   #4
diogene
Responsable Modération
 
Avatar de diogene
 
Homme Patrick Gonord
Enseignant Chercheur
Inscription : juin 2005
Messages : 5 488
Détails du profil
Informations personnelles :
Nom : Homme Patrick Gonord
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Enseignant Chercheur
Secteur : Enseignement

Informations forums :
Inscription : juin 2005
Messages : 5 488
Points : 13 125
Points : 13 125
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 !
diogene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 15h30   #5
awalter1
Membre éclairé
 
Avatar de awalter1
 
Inscription : août 2004
Messages : 881
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 881
Points : 316
Points : 316
Ah, oui ,c'est vrai.
merci
awalter1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h18.


 
 
 
 
Partenaires

Hébergement Web