找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于C语言for循环是怎么执行的?初始值是多少值为多少的时候是跳出循环?

[复制链接]
跳转到指定楼层
楼主
ID:862648 发表于 2021-1-29 15:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于延时函数

void delay(uint t) //定义延时函数
{
register uint bt;
for(;t;t--)  //疑问这里t的值是怎么循环的,初始值是多少值为多少的时候是跳出循环?
    for(bt=0;bt<255;bt++); //这一行就有数值循环可以看懂
}

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

使用道具 举报

沙发
ID:851164 发表于 2021-1-29 18:01 | 只看该作者
初始值是自己定义的,t减到零的时候跳出循环
回复

使用道具 举报

板凳
ID:879809 发表于 2021-1-29 18:11 来自手机 | 只看该作者
调用的时候赋值。t为〇退出。
回复

使用道具 举报

地板
ID:862648 发表于 2021-1-29 20:09 | 只看该作者
发表于 2021-1-29 18:11
调用的时候赋值。t为〇退出。

非常感谢,明白了,原来后面那个是赋值,我分开看来
回复

使用道具 举报

5#
ID:879809 发表于 2021-1-29 20:31 来自手机 | 只看该作者
清晨的粥 发表于 2021-1-29 20:09
非常感谢,明白了,原来后面那个是赋值,我分开看来

delay的参数是赋值。

register应该改为volatile。c51的作者假设他的用户都不懂这个关键字,所以不写也可以。正规c编译器会直接把变量置〇。
回复

使用道具 举报

6#
ID:862648 发表于 2021-1-29 20:35 | 只看该作者
发表于 2021-1-29 18:11
调用的时候赋值。t为〇退出。

那为什么会有两行for语句,第一个uint 和第二个tuint bt各有什么意义,这个关系然我思维卡住了,理解不进去
回复

使用道具 举报

7#
ID:879809 发表于 2021-1-29 20:43 来自手机 | 只看该作者
清晨的粥 发表于 2021-1-29 20:35
那为什么会有两行for语句,第一个uint 和第二个tuint bt各有什么意义,这个关系然我思维卡住了,理解不进 ...

写一行时间不够呗,这也看不懂?
回复

使用道具 举报

8#
ID:332130 发表于 2021-1-29 21:48 | 只看该作者
for (循环变量赋初值; 循环条件; 循环变量增值)for(;t;t--)

循环变量赋初值:不赋初值
循环条件:t > 0
循环变量增值:t-1
回复

使用道具 举报

9#
ID:862648 发表于 2021-1-29 21:53 | 只看该作者
发表于 2021-1-29 20:43
写一行时间不够呗,这也看不懂?

是两个循环次数相乘吗?包含关系?
回复

使用道具 举报

10#
ID:879809 发表于 2021-1-29 22:00 | 只看该作者
清晨的粥 发表于 2021-1-29 21:53
是两个循环次数相乘吗?包含关系?

你自己仔细想想吧,大概是对的。
回复

使用道具 举报

11#
ID:862648 发表于 2021-1-29 22:20 | 只看该作者
rundstedt 发表于 2021-1-29 22:00
你自己仔细想想吧,大概是对的。

谢谢大神
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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