web-dev-qa-db-fra.com

C Avertissement: Déclaration sans effet

En essayant de compiler mon programme avec:

gcc -pedantic -Wall -ansi 

Je reçois l'avertissement: warning: déclaration sans effet

En référence à cette ligne:

for(currentDirection; currentDirection <= endDirection; currentDirection++)

Est-ce que quelqu'un peut m'aider avec ça?

16
aytee17

currentDirection; ne fait rien.

Remplacez votre ligne par

for(; currentDirection <= endDirection; currentDirection++)

Ou, au cas où vous auriez simplement oublié d'initialiser la variable:

for(currentDirection = 0; currentDirection <= endDirection; currentDirection++)
33
ThiefMaster
for(currentDirection; currentDirection <= endDirection; currentDirection++)
 // ^^^^^^^^^^^^^^^ Its saying about the above statement.

La première déclaration doit avoir une assignation, ce qui n’est pas le cas en l’occurrence et qui est la raison de l’avertissement. Assurez-vous que currentDirection est assigné à une valeur valide, sinon il pourrait y avoir des erreurs et pourrait ultérieurement causer des problèmes.

C'est semblable à quand dit -

 int i = 10 ;
 i ;   // This statement is valid but has no effect.
9
Mahesh

D'après mon expérience, cette question se pose lorsque vous faites quelque chose dans le sens de

int x = 0;
for(x = 0;x < num; x++){}

Lorsque vous déclarez votre boucle et que vous initialisez déjà votre variable, x vous n'avez pas besoin de la déclarer une seconde fois. Donc, soit:

int x = 0;
for(; x < num; x++){}

Ou

int x;
for(x = 0; x < num; x++){}
1
Cody Syring