当试图编译我的prgram:
gcc -pedantic -Wall -ansi
我收到警告:警告:声明无效
参考这一行:
for(currentDirection; currentDirection <= endDirection; currentDirection++)
任何人都可以帮我吗?
答案 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++){}