59 votes

Avertissement : ignorer la valeur de retour de 'scanf', déclarée avec l’attribut warn_unused_result

<pre><code></code><p>J’ai compilé le code C ci-dessus en utilisant ideone.com et l’avertissement suivant est apparu:</p><blockquote> <p>prog.c: Dans la fonction 'main':<br> prog.c:5: avertissement: ignorer la valeur de retour de 'scanf', déclarée avec l’attribut warn_unused_result</p> </blockquote><p>Quelqu’un peut-il m’aider à comprendre cet avertissement ?</p></pre>

20voto

Alexandre C. Points 31758

L’avertissement indique (à juste titre) que c’est une mauvaise idée de ne pas vérifier la valeur de retour de . La fonction a été explicitement déclarée (via un attribut de fonction gcc)pour déclencher cet avertissement si vous ignorez sa valeur de retour.

Si vous voulez vraiment oublier cette valeur de retour, tout en gardant le compilateur (et votre conscience) heureux, vous pouvez jeter la valeur de retour en void:

10voto

Quigi Points 21

J’ai essayé votre exemple avec gcc (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3. L’avertissement est émis si et seulement en cas d’optimisation, par exemple avec l’option -O2 ou -O3. Demander tous les avertissements (-Wall) n’a pas d’importance. L’idiome classique de jeter dans le vide n’a aucun effet,il ne supprime pas l’avertissement.

Je peux faire taire l’avertissement en écrivant

cela fonctionne, mais c’est un peu obscur à mon goût. Empty {} évite encore un autre avertissement -Wempty-body

5voto

Michael Cook Points 84

Procédez comme ceci :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X