求助:想各位大哥请教几个 QueryPerformanceCounter 问题,谢谢!
请教:
在网上看到一段程序:
LARGE_INTEGER litmp; //定义变量
LONGLONG QPart1,QPart2; //定义变量
double dfMinus, dfFreq, dfTim; //定义变量
QueryPerformanceFrequency(&litmp); //取的计算机内部定时器工作频率(获取每秒多少CPU Performance Tick )
dfFreq = (double)litmp.QuadPart; //获得计数器的时钟频率
QueryPerformanceCounter(&litmp); //计数器 计算CPU运行到现在的时间
QPart1 = litmp.QuadPart;// 获得初始值
LARGE)INTEGER litmap;
LONGLONG QPart1,QPaet2;
double dfminus,dfFreq,dfTim;
QueryPerformanceFrequency(&litmap);
QPart = litmap.QuadPart;//
do
{
QueryPerformanceCounter(&litmp);
QPart2 = litmp.QuadPart;//获得中止值
dfMinus = (double)(QPart2-QPart1);
dfTim = dfMinus / dfFreq;// 获得对应的时间值,单位为秒
}while(dfTim<0.000001);
问题1:
为什么要把
dfMinus, dfFreq, dfTim 定义为 double?
定义为 LONGLONG 或者 LARGE_INTEGER 可以吗?
问题2:
dfFreq = (double)litmp.QuadPart; //获得计数器的时钟频率
QuadPart 是什么意思?
为什么要 QuadPart 呢?
还有为什么要 (double)?
问题3:
dfTim = (dfMinus * 100) / dfFreq;//
那么得到的应该是 ms ,是吗?
那么
dfMinus 和 dfFreq 可以都是 LARGE_INTEGER 类型,是不?
问题4:
如果我的电脑连续开几天
那么 LARGE_INTEGER 计数够了不?
谢谢!