2011-05-28 4 views
7

Je voudrais savoir pourquoi une variable inutilisée est mauvaise.Pourquoi les variables inutilisées sont-elles mauvaises?

Est-ce parce que le compilateur créer un plus grand binaire? Si oui, y a-t-il un outil/script qui peut ajouter un mot-clé unused ou quelque chose comme ça?

+5

parce que si vous ne l'utilisez pas, il est inutile d'avoir ce – Ibu

+0

@Ibu Je pose cette question parce que j'utilise une wich api ne pas utiliser beaucoup de variables, et j'ai été impressionné du nombre là-bas – klefevre

+0

Pourquoi sont-ils bons? Que font-ils ici? – EJP

Répondre

17

Le compilateur vous donne des avertissements à soupçon sur des choses qui pourraient potentiellement être un problème ou non.

des variables non utilisées seront optimisés loin le plus probable. Mais peut-être que vous aviez l'intention de faire quelque chose avec eux - et dans ce cas, le compilateur note utilement que vous avez fait quelque chose que vous ne vouliez pas.

Quelle est l'utilité d'une variable que vous déclarez, mais ni lire, ni écrire de?

+0

Ok, je pensais qu'un grand nombre de variables inutilisées pouvaient influencer la compilation. – klefevre

+0

Il pourrait prendre un peu plus de mémoire lors de la compilation en raison d'un plus grand nombre d'entrées nécessaires dans la table des symboles, mais en dehors de cela, je suppose que vous ne remarquerez rien. – Joey

+0

+1 c'est définitivement la meilleure réponse. Par exemple, plusieurs fois j'ai ajouté une variable d'index supplémentaire 'j' ou' k' mais réutilisé accidentellement la précédente, et l'avertissement du compilateur (qui arrête généralement la construction à cause de '-Werror') attrape le bogue avant même d'essayer exécuter le programme. –

8

À mon humble avis, les variables inutilisées compliquent la lisibilité de votre code. Peu importe la langue que vous utilisez.

+0

En vérifiant les sources maintenant, beaucoup d'entre eux, c'est le seul avertissement que je reçois, mais environ 4000 fois à différentes parties. Je ne comprends pas pourquoi on déclare autant de variables inutilisées. –

8

Parce que ...

La perfection est atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à enlever.

+2

'#include int main() {printf (" Tous les tests passés \ n "); } '. Expédiez ;-P –

+1

@ Steve: s/printf/met/.. 4 caractères ('\ n' pas nécessaire) plus près de la perfection ... –

+0

@William: vrai, bien que généralement je ne l'utilise pas 'puts', En général, une partie de ma sortie nécessite un formatage et je préfère utiliser une seule fonction pour toutes les sorties. Vous avez raison de dire que dans ce cas cela ne s'applique pas, donc le seul argument contre 'puts' est que parfois explicit (linebreak) est meilleur qu'implicite. D'ailleurs, vous pouvez également supprimer les espaces, même si je suis sûr que cela n'améliorerait pas les choses ;-) –

Questions connexes