单片机C语言中碰到的问题?

我请教下,单片机C语言中碰到的问题??

1.阅读以下两个函数,并分别指出这两个函数的功能
函数1:

void delay(void)

{
unsigned char m,n;

for(m=20;m>0;m--)

for(n=20;n>0;n--);
}
函数2:
void delay (void)
{
unsigned char m,n;
for(m=20;m>0;m--);
for(n=20;n>0;n--);
}
函数1的功能

答:

函数2的功能

答:

(3)函数1,2的区别

答:
最新回答
三天三夜,三斤作业

2024-10-15 03:34:06

都是循环延时函数,其中都包含了如下两句;

  for(m=20;m>0;m--) 、 for(n=20;n>0;n--);

但是不同的是语义不同(这里就是有无“;”分号的不同);

是镶套循环,那么其循环次数 = m * n;

则是两个独立的循环,其循环次数 = m + n;

追问
两个函数分别实现的功能是什么呢
追答
前面不是说了嘛,就是延时的功能呀。这种延时方式就是让CPU在那儿团团转而消耗时间,因此为了让CPU能干点正事,通常采用中断方式来实现延时。
明月本无心

2024-10-15 05:27:34

函数2的两个for循环相互不嵌套,执行完循环1执行循环2,各执行一次。而函数1中第二个for循环受第一个循环控制,也就是控制第二个for循环执行20次。如果作为延时用,第一个函数延时时间大约是第二个函数的20倍。
矮女是萌妹

2024-10-15 05:43:39

奇了怪了,为什么我在这个界面总是看不到别人提问的内容,好像只能看到单片机c语言碰到的问题这个标题。