最近东搞西搞,一下子搞X平台uboot的flash问题,一下子搞Y平台的接收YUV数据上位机,频繁切换,但都没什么主要事务,听说其他部门的人连接客户电话都计时,按任务算的。可惜自己所在部门没开通这个业务。

闲话不多说,在看代码中,发现一个while语句,怎么看总觉得有问题,又不知确切出在哪里,于是就简单写了个测试程序。

示例:

int main(void)
{int i = 10;while (i--){printf("hello: %d\n", i);}if (i == 0){printf("last-----------i == 0\n");}else{printf("last-----------i != 0 (%d)\n", i);}return 0;
}

实际的函数用途是做超时判断,while中有delay延时,这里不写出来。上面的例子,一般人认为最终i的值是0,但实际上即是-1。是当while判断为0时不进入循环,但此时i--还会自减。因为i--本身就是先判断i的值再自减。如果将while (i--)改为while (--i) ,i的最终结果为0。

为了防止出现问题,建议作如下判断:

int main(void)
{int i = 10;while (i--){printf("hello: %d\n", i);}if (i<=0){printf("timeout or sth wrong\n");}return 0;
}

有时候我觉得,大学里的C语言试题还是有点用处的,只要不过分,都能接受,也能学到点东西——只是不知道什么时候会真正觉得派上用场。像我,2010年搞了下点阵字体,结果2年后在实际工作中用上了一些知识。

李迟记于2014年5月29日

一个while的小小问题相关推荐

  1. 一个Weex的小小小小小小页面示例

    使用Weex实现的一个页面效果: 下面列出主要的代码: index.vue <template><div><!--<image :src="logo&qu ...

  2. AI主播首次上岗CCTV,撒贝宁有了个虚拟孪生兄弟“小小撒”

    雷刚 发自 凹非寺  量子位 报道 | 公众号 QbitAI 虚拟和现实同台,小撒小小撒两开花. 春节要到了,春晚也近了,央视自然也势头热闹起来. 不过今时不同往日,就在今年网络春晚中,AI的一小步, ...

  3. 小小军姬怎么在电脑上玩 小小军姬安卓模拟器玩法攻略

    <小小军姬>是一款军事少女与恋爱养成结合的二次元手游,军事兵器化身少女机甲,华丽火爆的即时策略战斗,轻松治愈的动漫画风,让你沉浸在异次元世界中无法自拔,携手可爱的小姐姐,在激战和恋爱中突破 ...

  4. 一个二线城市程序员-周末一天的生活

    做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开 分享一下大神老师的人工智能教程.零基础!通俗易懂!风趣幽默(偶尔开开车,讲讲黄段子)! 大家可以看看是否对自己有帮助,如果你 ...

  5. 从餐厅的小小服务员成长为中式快餐创始人,看他如何逆袭的

    杨静,从一个餐厅的小小服务员成长为愉筷中式快餐创始人,加盟店到今天将愉筷中式快餐开到遍布全国10多个城市.他踏实地走好每一步,上演了一场"屌丝"大逆袭的商业喜剧. 1997年夏天, ...

  6. python学习之小小爬虫

    学习python一段时间了,写了一个图片的小小爬虫,分享下,不喜勿喷! #coding=utf-8 ''' Created on 2015-5-22@author: 悦文 '''import re i ...

  7. 统计文件种类数+获取子shell返回值的其它方法

    前言 只是作为一个shell的小小练习和日常统计用,瞎折腾的过程中也是摸到了获取子shell返回值的几种方法: 肯定还有别的方法,跟进程间的通信相关,希望你能提出建议和补充,谢谢~ 完整程序: #! ...

  8. linux新内核的freeze框架以及意义

    linux的电源管理发展非常迅速,比如在挂起到内存的时候,系统会冻结住所有的进程,也就是所有的进程都不再运行,它们被冻结之前,最后的状态被保存, 等到解冻的时候,所有进程恢复运行,linux对此的实现 ...

  9. 想学python都要下载什么软件-学编程闲余时间建议下载的软件_Python新手入门教程...

    原标题:学编程闲余时间建议下载的软件_Python新手入门教程 Python新手入门教程_在手机上就能学习编程的软件 很多小伙伴会问:我在学编程,想利用坐地铁坐公交吃饭间隙学编程,在手机上能学编程的软 ...

最新文章

  1. 内存回收的一些基本方法
  2. PHP高并发的解决方案
  3. 【python图像处理】图像的滤波(ImageFilter类详解)
  4. get中添加header
  5. 2.odoo13之跟着官网做项目/实例(创建菜单,创建action,创建视图、搜索过滤器,分组)
  6. boost::spirit模块实现一个复数微生成器的测试程序
  7. Linux 关于查看 cpu 的命令
  8. 单精度浮点数与十六进制转换
  9. 非极大值抑制(NMS)
  10. 打造素质魅力 树立个人威信30条准则
  11. 隔空互撕!李想炮轰团车造车是“骗子”,团车CEO回怼:别把自己当先知
  12. QT控件出现乱码问题
  13. 【渝粤题库】陕西师范大学200091 东方文学专题研究 作业
  14. js遇到的wasm的加密
  15. java 图片切割_使用Java实现图像分割
  16. 板材品牌排名之橱柜用生态板
  17. 奥赛一本通2069:【例2.12 】糖果游戏
  18. 【考研资料】计算机/软件超过百所大学的考研初试复试资料!
  19. 怎么搭建在线网校系统,靠谱的网校平台搭建开发公司
  20. 获取img的src 或者给img赋值

热门文章

  1. 《数字时代汽车营销变革白皮书》发布,为新消费时代的车企营销提供指南
  2. iPhone 14系列贴膜曝光:将采用开孔屏方案 四边框极窄
  3. 2022年“超级818汽车狂欢夜”启动,易车将携手汽车品牌共创内容营销
  4. Meta:绝对没有威胁要离开欧洲市场
  5. iPhone 14 Pro太空黑渲染图曝光:感叹号挖孔+直角边框
  6. 越来越像QQ?微信支持批量删好友啦!安卓用户“不配”
  7. 支付宝国庆消费报告出炉:景区消费涨9倍
  8. 毕业生共享屏幕3小时 被骗70万
  9. 首发天玑1200!Redmi电竞旗舰首曝:电池容量或超4500mAh
  10. Android 11正式发布:小米、OPPO等手机将陆续更新