void delay(unsigned int i)
{
char s;
for(i; i > 0; i--)
for(s=200;s>0;s--);
}
void delay_123(unsigned int i)
{
int j;
for(i; i > 0; i--)
for(j=200;j>0;j--);
}
做延时函数时char 和int变量的用法,如下两个程序做延时是,效果完全不一样,为什么啊?
答案:2 悬赏:30 手机版
解决时间 2021-03-14 21:12
- 提问者网友:你独家记忆
- 2021-03-14 07:16
最佳答案
- 五星知识达人网友:怙棘
- 2021-03-14 07:37
char所占的空间为1个字节,所以能表达的范围是-128 - 127,所以你用s=200赋值肯定是错误的,s读不出来,我调试了一下,s=200的结果是把s赋值为-52
所以不会执行内层循环,如果改成s=127则是ok的
所以不会执行内层循环,如果改成s=127则是ok的
全部回答
- 1楼网友:北方的南先生
- 2021-03-14 08:06
那是因为这两个是不同的东西啊
再看看别人怎么说的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯