永发信息网

为什么再次调用函数时局部变量的值没有初始化

答案:2  悬赏:0  手机版
解决时间 2021-03-08 13:43
  • 提问者网友:那叫心脏的地方装的都是你
  • 2021-03-07 19:29
void NumKeyAction(unsigned char n)
{
unsigned char len;
unsigned char str[12];

if(step > 1)
{
Reset();
}
if(step == 0)
{
Num1 = Num1 * 10 + n;
len = LongToString(str, Num1);
LcdShowStr(16 - len, 1, str);
}
else
{
Num2 = Num2 * 10 + n;
len = LongToString(str, Num2);
LcdShowStr(16 - len, 1, str);
}
}

unsigned char LongToString(unsigned char *str, long dat)
{
unsigned char buff[12];
char i = 0;
unsigned char len = 0;

if(dat < 0)
{
dat = -dat;
*str++ = '-';
len++;
}
do
{
buff[i++] = dat % 10;
dat /= 10;
}
while(dat > 0);
len += i;
while(i--)
{
*str++ = buff[i] + '0';
}
*str = '\0';

return len;
}

len的值并没有初始化
最佳答案
  • 五星知识达人网友:街头电车
  • 2021-03-07 19:47
LongToString里面的len已经有初始化了。NumKeyAction里的len也有赋值。所以怀疑你的if(step == 0) else的逻辑是否有问题
全部回答
  • 1楼网友:逐風
  • 2021-03-07 20:33
不明白啊 = =!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯