[求助]一道改错题!
找错
#define MAX_SRM 256
DSN get_SRM_no()
{
static int SRM_no;
int I;
for(I=0;I<MAX_SRM;I++,SRM_no++)
{
SRM_no %= MAX_SRM;
if(MY_SRM.state==IDLE)
{
break;
}
}
if(I>=MAX_SRM)
return (NULL_SRM);
else
return SRM_no;
}
我看到的一道改错题,请教该怎么改?
搜索更多相关的解决方案:
改错
----------------解决方案--------------------------------------------------------
似乎应该给SRM_no赋初值(虽然vc一般会自动为静态变量赋初值0)
我建议你最好把原题全部发上来,光看这段程序实在不明所以
----------------解决方案--------------------------------------------------------
你要实现什么功能啊,也没注释,着你的代码吗?就这样什么也没有,人见了就感觉没意思!
----------------解决方案--------------------------------------------------------
是 SRM_no %= MAX_SRM;
这句错了,它只能在没找到的情况下,把SRM_no 置为0
但是对找到的情况就不行了 应改为 SRM_no = 0
还有,SRM_no 可以不要设成static吧
只看这个函数,它的功能应该是查找某个值,找到返回SRM_no ,找不到返回NULL_SRM
----------------解决方案--------------------------------------------------------
ls 说的好
是应该给SRM_no赋初值
----------------解决方案--------------------------------------------------------