找回密码
 立即注册

QQ登录

只需一步,快速开始

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

C语言while(--t);语句求解

  [复制链接]
跳转到指定楼层
楼主
ID:954205 发表于 2021-7-22 21:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void delay(unsigned int t)
        {
                while(--t);
        }
这个语句里面while(--t)可与更改吗?可以换把--t换掉吗?如果可以应该怎么换?

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

使用道具 举报

沙发
ID:108819 发表于 2021-7-22 22:52 | 只看该作者
可以更换啊,这个里面就是延时,你可以更换成for(;t>0;t--);
回复

使用道具 举报

板凳
ID:161164 发表于 2021-7-22 23:34 | 只看该作者
当然可以换,但目的是什么?
回复

使用道具 举报

地板
ID:953771 发表于 2021-7-23 00:05 来自手机 | 只看该作者
可以换啊
回复

使用道具 举报

5#
ID:955762 发表于 2021-7-23 08:30 | 只看该作者
--t的意思就是每循环一次,t值减少1
回复

使用道具 举报

6#
ID:386001 发表于 2021-7-23 08:51 | 只看该作者
可以换
while(--t)一句程序里做了两件事,t自减1,并判断t是否大于0,
如果你想改,可以改成下面这样(供参考)
while(判定真假的条件)
[修改判定条件的内容]
回复

使用道具 举报

7#
ID:955858 发表于 2021-7-23 13:33 | 只看该作者
--t即是t自减运算,while还进行是否大于0判断;可以进行对t赋初值,运用for语句来完成定时的延时,希望能够帮到你
回复

使用道具 举报

8#
ID:401462 发表于 2021-7-23 14:47 | 只看该作者
这个是使用while的循环延时才可以直接使用for循环完成
回复

使用道具 举报

9#
ID:950946 发表于 2021-7-23 18:42 | 只看该作者
这个完全可以直接改的,要换一起换。看系统时钟,比如1MHz,你把 t 变成1000,就相当于延迟1ms
回复

使用道具 举报

10#
ID:317585 发表于 2021-7-23 19:58 | 只看该作者
当然可以啊,但是你要做什么
回复

使用道具 举报

11#
ID:883242 发表于 2021-7-24 21:25 | 只看该作者
注意下你的代码只在C51下面可用,因为该编译器设计者认为用C51的都是不懂volatile这个关键字的傻孩子。换个编译器比如同样被小白们喊成Keil的RVMDK,楼主位代码会直接优化成t=0;因为t最后一定会等于0。现在的编译器比你想象的聪明太多了。
回复

使用道具 举报

12#
ID:885797 发表于 2021-7-28 11:33 | 只看该作者
这是一个循环,看你具体想让他循环多久
回复

使用道具 举报

13#
ID:476415 发表于 2021-7-28 12:33 来自手机 | 只看该作者
这是基础语法啊!
回复

使用道具 举报

14#
ID:957089 发表于 2021-7-28 14:40 | 只看该作者
可以更改,可以用for循环语句
回复

使用道具 举报

15#
ID:955647 发表于 2021-7-28 20:57 | 只看该作者
void delay(uint i) {         while(i--);         }
回复

使用道具 举报

16#
ID:955647 发表于 2021-7-28 20:58 | 只看该作者
可以换成这样void delayms(unsigned int ms) {         unsigned char i=100,j;         for(;ms;ms--)         {                 while(--i)                 {                         j=10;                         while(--j);                 }         } }
回复

使用道具 举报

17#
ID:955647 发表于 2021-7-28 20:58 | 只看该作者
可以改成这样void delayms(unsigned int ms)
{
        unsigned char i=100,j;
        for(;ms;ms--)
        {
                while(--i)
                {
                        j=10;
                        while(--j);
                }
        }
}
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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