找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1918|回复: 2
打印 上一主题 下一主题
收起左侧

新手关于C语言for嵌套语句的问题,请大家帮我看看,谢谢了

[复制链接]
跳转到指定楼层
楼主
ID:404479 发表于 2018-10-3 03:02 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
这个子函数,我就搞不懂,两个for,原理我懂,我搞不懂为什么要把这里的y定义成字符变量?明明可以和x一样定义成无符号整形的,还有就是,第一个for里面,我把x=z,z在前面的值是delay(100),那么相当于z=100,我首先将z代进x为:
for(x=z;x>0;a--)   
for(y=100;y>0;y--);
我在把z代进y,如下:
for(x=100;x>0;x--)   
for(y=z;y>0;y--);
为什么这两种方式,我调试时,为什么他们两种的延时时间都不一样,按理来说,都是一样的值,结果会一样的呀,不都是100*100=10000吗?同理,如果我就算把z给取消了,变成不需要参数值的delay,那么假如,x=10,y=100,依次写入两个for嵌套循环,x在第一个for,y在第二个for,,然后,我又交换,y在第一个for,x在第二for,为什么,第一种,10*100,第二种,100*10,循环次数一模一样,为何他们延时的时间有差异,求各位老师,各位大神帮我分析分析,小弟感谢各位了!

IMG_20181003_013836.jpg (67.69 KB, 下载次数: 28)

IMG_20181003_013836.jpg

IMG_20181003_025949.jpg (83.53 KB, 下载次数: 38)

IMG_20181003_025949.jpg

IMG_20181003_030118.jpg (78.27 KB, 下载次数: 36)

IMG_20181003_030118.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:387733 发表于 2018-10-3 08:43 | 只看该作者
       x定义成uint是因为允许调用函数时,参数可以大于255的需要。而y是确定不会大于255,使用uchar只占用一个字节,节约内存,还便于计算延时时间。
       这个延时函数是利用计算机执行每一条指令所消耗的时间累计完成的,不同的指令占用的时间是不一样的,不同的循环使用的机器指令也是不一样的,所以简单地把2个循环值相乘只能是大致上的延时。精确的延时是要逐条累加每个循环,每条指令的执行时间。
        即便这样,如果程序中有中断要处理,也会影响延时的时间。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:386381 发表于 2018-10-5 21:56 来自手机 | 只看该作者
应该是两个变量所占的字节大小不同,系统处理的时间有差异吧
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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