C语言用keil编程,关于while

我们一般会在主函数(void main())中写while(1)死循环,我想知道写while和不写while有什么区别?
#include<reg52.h>
unsigned int cnt=0;
void main()
{
TMOD=0X01;
TH0=0XFC;
TL0=0X67;
TR0=1;
EA=1;
ET0=1;
if(cnt==1000)
{
P1=0X0E;P0=0Xfe;
}
else if(cnt==2000)
{
P1=0X0E;P0=0Xfd;
}
else if(cnt==3000)
{
P1=0X0E;P0=0Xfb;
}
else if(cnt==4000)
{
P1=0X0E;P0=0Xf7;
}
else if(cnt==5000)
{
P1=0X0E;P0=0Xef;
}
else if(cnt==6000)
{
P1=0X0E;P0=0Xdf;cnt=0;
}
}
void interrupt_timer0()interrupt 1
{
TH0=0XFC;
TL0=0X67;
cnt++;
}这个程序的现象和在if(cnt==1000)前面加个while(1)一直包括到主函数完,两者有什么区别,并且请详细说下while的作用,谢谢!

main函数里写个while死循环,是为了让这个可执行文件对应的进程能持续不断的运行循环体内的程序。
如果没有这个死循环,那么程序在执行完一次后就结束运行退出了。
你给出的代码有个中断处理函数,如果main里有while(1),大概的意思是中断函数执行一次,cnt++,在cnt达到1000等数的时候,就会设置相应的P1、P0等。
如果没有while(1),程序执行进去什么都不会做,应为cnt变量没有增加到超过1000。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-08
你看下windows系统的任务管理器里面的idle线程。这是操作系统的机制,嵌入式系统也是操作系统,while(1)死循环用来保持系统处于运行状态,以随时准备接受命令、消息,去工作运行。
相似回答