J'ai écrit une fonction qui raccourcit une chaîne (phrase de mots) à la longueur demandée. Je ne veux pas que la coupe de la phrase soit au milieu d'un seul mot. Donc, je saute des charps jusqu'à ce que j'atteigne un espace et couper la corde de phrase là-bas.
Mon problème n'est pas vraiment un problème, la compilation de ma fonction crache un avertissement indiquant "Avertissement: la valeur calculée n'est pas utilisé", voir la ligne commentée dans le code. La fonction fonctionne comme prévu cependant.
Donc, je suis aveugle, ou je suis assis à long de mon projet, je ne comprends pas cet avertissement. Quelqu'un pourrait-il me signaler la faille de la fonction? Mon compilateur sur la machine de développement est "Version GCC 4.2.4 (Ubuntu 4.2.4-1ubuntu4)" P> p>
3 Réponses :
La décrément est évaluée, alors votre désarférence le résultat de cela. Vous ne faites rien avec ce résultat, d'où l'avertissement. Vous obtiendriez le même avertissement si vous venez de dire * p - code> est identique à celui
* (p -) code>. p>
* p code>. P>
Je savais que c'était si simple :-) ... Désolé, j'aurais dû examiner que moi-même, parfois ce n'est pas facile de voir la forêt à cause de tous les arbres ...
Remarque: le résultat de la décrément est la valeur d'origine du pointeur.
J'ai oublié cela récemment. Remplacé char * p code> avec
char ** p code> et modifié
p ++ code> dans
* p ++ code>; attendait
(* p) ++ code>, mais cette réponse m'a redressée. A fini par changer de
* p = * p + 1 code> pour plus de clarté.
Vous venez de le faire pour l'effet secondaire
*p--;
Le compilateur vous avertit que la valeur de l'expression n'est pas utilisée: -) p> p>
L'avertissement est dû au et l'avertissement devrait disparaître. P> p> * code> (Dréréférence) - vous n'utilisez pas la valeur déréférencée nulle part. Il suffit de le faire:
Pourquoi avez-vous utilisé un si alors alors? (juste curieux)
En outre, il devrait vérifier
p> s code> dans cette boucle (comme il le fait dans la seconde).
@BLAM: Parce que c'est alpha-code et pas encore vraiment propre. Oui, que "si" n'est pas nécessaire. Merci :-) @Lars: True, merci, je viens d'ajouter ça!
Dieu merci, le compilateur se plaint en fait ^^.
Vrai! C'est pourquoi j'ai toujours "-wall" basculer avec des commandes de compilation pendant le développement!