2011-03-24 26 views
14

Al intentar compilar mi prgram con:C Advertencia: Declaración sin efecto

gcc -pedantic -Wall -ansi 

consigo la advertencia: aviso: declaración sin efecto

En relación con esta línea:

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

¿Alguien me puede ayudar con esto?

Respuesta

29

currentDirection; no hace nada.

reemplazar su línea con

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

O, en caso de que simplemente se olvidó de inicializar la variable:

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

O tal vez está destinado a ser 'currentDirection = 1' dado el criterio de terminación –

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

Primera declaración debe tener una misión, que no está sucediendo en este caso y es el motivo de la advertencia. Asegúrese de que currentDirection esté asignado a un valor válido o puede tener basura y, posteriormente, puede causar problemas.

Es similar a cuando dicho -

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

En mi experiencia este problema surge cuando se hace somthing lo largo de las líneas de

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

Cuando está declarando su bucle y ya inicializar su variable, x no necesita declararla por segunda vez. Así que, o hacer :

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

O

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