刷新显示缓冲区函数看不懂,求解释

2020-02-05 09:24发布

                                    //请大虾指教一下,究竟代码什么个意思?
   void RefreshBuf(void)
    {
     if(bTime1S)  //定时中断1S标志位。
     {
       bTime1S=0;  //重新赋0
      if(++DisBuf[7]==10)   //从这里开始,不懂了。
       {
          DisBuf[7]=0;
        if(++DisBuf[6]==6)
         {
          DisBuf[6]=0;
         if(++DisBuf[4]==10)
          {
          DisBuf[4]=0;
           if(++DisBuf[3]==6)
            {
             DisBuf[3]=0;
             if(DisBuf[0]<2)
              {
               if(++DisBuf[1]==10)
                 {
                  DisBuf[1]=0;
                  DisBuf[0]++;
                 }
        }
              else
        {
  if(++DisBuf[1]==4)
                 {
                  DisBuf[1]=0;
                  DisBuf[0]=0;
                 }
                }
        }
             }
            }
       }
   }
}  

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
ming180
1楼-- · 2020-02-05 11:14
本帖最后由 ming180 于 2012-5-12 14:09 编辑

char DisBuf[8] = {0, 0, ':' , 0, 0, ':' , 0, 0}; //可能不是':'
00:00:59 + 00:00:01 -> 00:01:00
00:59:00 + 00:01:00 -> 01:00:00
23:00:00 + 01:00:00 -> 00:00:00
yanse1214
2楼-- · 2020-02-05 14:42
楼上是高手,能具体讲下不?
eduhf_123
3楼-- · 2020-02-05 15:28
循环进位而已。
依次分别处理秒个位向秒十位、秒向分、分个位向分十位、分向小时、小时个位向小时十位的进位。

一周热门 更多>