-Wunused-variable comstackr dit ERROR

Récemment, je commence à programmer en C + + (je viens de Java et cela me coûte un peu de changement haha). Sous Windows, tout va bien. Le problème est que je suis passé à Linux et que c’est là que j’ai des problèmes avec le compilateur. C’est généralement lorsque vous déclarez une variable et que vous ne l’utilisez pas, le compilateur affiche un “warning” indiquant que la variable n’est pas utilisée, mais I (sous linuxmint 15) me renvoie comme “erreur” et ne laisse aucune compilation: C. Je le fais sais pas si quelqu’un a ce qui s’est passé, mais je suis malade au moment de faire de grands programmes (plus d’une classe).

un petit exemple: entrez la description de l'image ici

L’avertissement de variable inutilisée résulte de l’appel de GCC avec l’un des deux

 g++ -Wunused-variable ... 

Si tel est le cas, ne spécifiez pas cet argument. Ou c’est à cause de -Wall:

 g++ -Wall ... 

Dans quel cas, spécifiez -Wno-inutilisé-variable

C’est une erreur parce que vous avez aussi l’argument ‘-Werror’.

Cet avertissement a plusieurs raisons: Il est possible de “masquer” des variables entre des étendues en C ++. Une cause commune des variables inutilisées est donc lorsque vous avez deux variables du même nom.

 int i = 5; for (int i = 0; i < 10; ++i) { // << this is SECOND variable called i that hides the previous } if (day == "Monday") { int i; // << you can't see the second i here, this is a third that also hides the first. ... } // std::cout << "i = " << i << std::endl; // we can see original i again here 

Il y a deux variables appelées "i" ici. Si vous supprimiez la mise en commentaire de la dernière ligne, le résultat serait 5, sans lien avec les deux variables supplémentaires appelées 'i'.

Sans le std :: cout, cependant, l'original, outer, i n'est jamais utilisé. Peut-être que le dernier "int i" est une erreur.

Un autre problème courant concerne la possibilité d’avoir des variables globales en C ++.

 int Whoops; // GLOBAL: NEVER EVER TOUCH THIS. int func() { int whoops; // LOCAL: ALWAYS TOUCH THIS. Whoops = 42; // >W 

Vous recevrez un avertissement vous indiquant que "whoops" est une variable non utilisée pour vous aider à détecter si vous avez modifié la mauvaise variable.