普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 4505|回复: 3

[已解决] 程序放在死循环里和放在死循环外有没有区别

[复制链接]

1

主题

2

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2019-9-26 17:03:47 | 显示全部楼层 |阅读模式
例如
void main()
{
   程序;
  while(1);
}

void main()
{
  while(1)
{
程序;
}
}
回复

使用道具 举报

0

主题

11

帖子

39

积分

新手上路

Rank: 1

积分
39
QQ
发表于 2019-12-25 09:28:11 | 显示全部楼层
按照C语言的逻辑来讲,程序放在while(1)外面只会运行一次。但是在学习51单片机的过程中你可能会发现一些现象:程序放在while(1)的外面,看上去程序也是会一直执行的。这是因为在Keil C51中,新建工程后程序自动加载了一个名为”STARTUP.A51”的文件,在这个文件里面进行了一系列的初始化操作。期中就包含了进入用户编写的main函数入口,main函数执行完毕后,STARTUP.A51文件后有一句跳转到main函数入口的语句,所以会再次进入C语言主程序main函数中执行相关操作。这个时候就出现了"程序放在while(1)外面,一样在while(1)中循环"这种现象。
回复 支持 1 反对 0

使用道具 举报

1

主题

5

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2019-9-27 07:16:37 | 显示全部楼层
这个区别大了,程序放在死循环外只执行了一次,而放在死循环里的是一直反复执行的。
回复 支持 反对

使用道具 举报

0

主题

66

帖子

246

积分

中级会员

Rank: 3Rank: 3

积分
246
发表于 2019-9-27 07:51:47 | 显示全部楼层
一个只执行一遍,另一个执行无数遍。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-24 08:31 , Processed in 0.091307 second(s), 32 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表