c语言简单问题求解答:结构体显示当前时间

这道题就是表示时间,然后我的问题是为什么要有void ticktok(Time *p) 这个代码?因为我发现即使不使用这一行代码,显示出来也是对的啊,所以这个函数到底有身边么用?求解答,谢谢

#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <time.h>

typedef struct Time
{
    int hour;
    int minute;
    int second;
}Time;

void ticktok(Time *p)
{
    p ->second++;
    if(p->second >= 60)
    {
        p->second = 0;
        p->minute++;
        {
            if(p->minute >= 60)
            {
                p->minute = 0;
                p->hour++;
                if(p->hour >=24)
                {
                    p->hour %= 24 ;
                }
            }
        }
    }
}

int main()
{
    while(!kbhit())
    {


    int seconds = time(NULL);
    Time now;
    now.hour = (seconds/3600 +8 )%24;
    now.minute = seconds/60%60;
    now.second = seconds%60;
    ticktok(&now);
    printf("%d:%d:%d",now.hour,now.minute,now.second);
    Sleep(1000);
    system("cls");
    }


}

你说的没错,ticktok的确没用,估计写程序的人原来打算 int seconds = time(NULL);写在while循环外面,靠ticktok更新时间,但是不知道为什么,他写在了里面
写在循环里面,每次都得到时间,就不再需要ticktok,可是他也没有把这代码删除。

因为你在ticktok之前就已经把now赋值成了当前的秒数,而ticktok就是专门把一个Time*变量增加一秒的,所以就不用再增加一遍了。这只是一个向下取整和向上取整的问题。