C警告:声明无效

时间:2011-03-24 09:56:13

标签: c for-loop warnings

当试图编译我的prgram:

gcc -pedantic -Wall -ansi 

我收到警告:警告:声明无效

参考这一行:

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

任何人都可以帮我吗?

3 个答案:

答案 0 :(得分:33)

currentDirection;什么也没做。

替换你的行
for(; currentDirection <= endDirection; currentDirection++)

或者,如果您忘记初始化变量:

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

答案 1 :(得分:9)

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

第一个语句应该有一个赋值,在这种情况下不会发生,并且是警告的原因。确保currentDirection已分配给有效值,或者它可能有垃圾,可能会导致问题。

类似于说 -

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

答案 2 :(得分:1)

根据我的经验,当你按照

的方式做某些事情时会出现这个问题
int x = 0;
for(x = 0;x < num; x++){}

当您声明循环并且已经初始化变量时,x您不需要再次声明它。 所以要么:

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

或者

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