#include "TIMER1.h"
#include "MAIN.h"
typedef unsigned _int64 uint64;
void TASK1()
{
uint64 freq, start, end, diff;
//unsigned int milliseconds;
QueryPerformanceFrequency((LARGE_INTEGER*)&freq);
QueryPerformanceCounter((LARGE_INTEGER*)&start);
// code to measure
printf("hi\n");
printf("hi1\n");
printf("hi2\n");
QueryPerformanceCounter((LARGE_INTEGER*)&end);
diff = (((end - start) * 1000) / freq);
//milliseconds = (unsigned int)(diff & 0xffffffff);
printf("It took %u ms\n",diff);
}
我从 main 中多次调用 void TASK1() 函数并分析打印所需的时间,如上面的代码(即 hi、hi1、hi2)。我正在计算打印 hi、hi1、hi2 的开始时间和结束时间之间的时间差。我的问题:为什么我的输出延迟并且无法完全按预期打印。
输出错误:hi hi1 hi2 它花了 0ms
hi hi1 hi2 花了 1ms
有时在输出中: hi1 hi2 it takes 2ms
这是什么原因?如何将上述代码从毫秒更改为微秒?