Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1332 connectés 

  FORUM HardWare.fr
  Programmation
  C

  warning à la compilation:

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

warning à la compilation:

n°927528
myeve
Posté le 19-12-2004 à 17:07:57  profilanswer
 

Bonjour a tous, voila j'ai une fonction comme ceci:
 

Code :
  1. char *
  2. mystrchr(const char *s, int c)
  3. {
  4. while ( *s != c ){
  5.  if (*s == '\0')
  6.   return NULL;
  7.  *s++;
  8. }
  9. return s; //renvoi du pointeur  
  10. }


 
Or j'y fait appel comme ceci:

Code :
  1. if ( (ptr = mystrchr(src, c)) != NULL )
  2.         {
  3. ...
  4. }


 
Or le J'ai un warning a la compilation:
"attention : return annule des qualificateurs du type du pointeur cible
"
 
Il parle bien sur du 'return' de ma fonction..
 
Comment remédier à cela ? Est-ce nécessaire ?
 
Merci de vos reponses


Message édité par myeve le 19-12-2004 à 17:08:31
mood
Publicité
Posté le 19-12-2004 à 17:07:57  profilanswer
 

n°927530
matafan
Posté le 19-12-2004 à 17:23:25  profilanswer
 

Je dirais que ta fonctin doit renvoyer un const char * puisque s est un const char *. Sinon le "*" dans "*s++" ne sert a rien et ne devrait pas être là.

n°927531
Emmanuel D​elahaye
C is a sharp tool
Posté le 19-12-2004 à 17:23:33  profilanswer
 

myeve a écrit :


Code :
  1. char *
  2. mystrchr(const char *s, int c)
  3. {
  4. <...>
  5. return s;
  6. }


 
Or le J'ai un warning a la compilation:
"attention : return annule des qualificateurs du type du pointeur cible
"
 
Il parle bien sur du 'return' de ma fonction..
 
Comment remédier à cela ?  


En étant cohérent :

Code :
  1. char const *
  2. mystrchr(const char *s, int c)


Citation :


Est-ce nécessaire ?


Oui, si on veut être cohérent.


Message édité par Emmanuel Delahaye le 19-12-2004 à 17:25:00

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°927546
Taz
bisounours-codeur
Posté le 19-12-2004 à 18:18:14  profilanswer
 

Emmanuel Delahaye a écrit :

En étant cohérent :
[cpp]
Oui, si on veut être cohérent.


on emploie la même notation dans ce cas là :D
 
mais sérieusement, c'est difficile de traiter ce cas là en C.
 
Parce qu'ici, on n'exprime pas 'my_strmachin ne modifie pas ma chaine', mais 'my_strmachin ne modifie pas ma même et renvoie une pointeur sur quelque chose de constant' ...

n°927566
myeve
Posté le 19-12-2004 à 19:17:54  profilanswer
 

ok merci beaucoup a tous..


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  warning à la compilation:

 

Sujets relatifs
[[MS Visual C++ 6.0] Il ne link plus lors de la compilation [Résolu]accélérer la compilation (pré-compilation ?)
Problème de compilation sur Dev-C++erreur compilation gcc parse error at the end of input
[GTK & C++] compilation de classe avec erreurcompilation d'une couche Ethernet modifiée sur linux
[jsp]problème à la compilation : class file contains wrong class[DevC++] problème de compilation avec des templates
[GNU] options de compilationCompilation php?
Plus de sujets relatifs à : warning à la compilation:


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR