为什么选择GetLocalTime(&sys); 显示奇怪的结果?

koo*_*121 0 c++ time winapi

我想实时获取当地时间.代码和结果如下,显示奇怪;

int main() {
    while (true) {
        char sentdata[64] = { 0 };
        GetLocalTime(&sys);
        sprintf(sentdata, "A,%02d:%02d:%02d.%03d,B\n", sys.wHour, sys.wMinute, sys.wSecond, sys.wMilliseconds);

        cout << sentdata << endl;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我在其他PC上尝试了相同的代码,结果显示如下,它可以显示每毫秒.

在此输入图像描述

为什么tmie在某个循环中是相同的?我认为每个循环的时间应该不同.

Dan*_*rul 5

这是Windows系统上的典型计时行为,即使使用高分辨率时钟:时间仅在大约16 ms的跳跃时增加.

要获得Windows上的准确计时,请参阅此答案