天天看點

c語言在windows中的記錄微妙級時間

/**typedef union _LARGE_INTEGER {

    struct {

        DWORD LowPart;

        LONG HighPart;

    } DUMMYSTRUCTNAME;

    } u;

#endif //MIDL_PASS

    LONGLONG QuadPart;

} LARGE_INTEGER;**///上邊是LARGE_INTEGER的聯合體聲明,不用寫,系統自己調用

int printTime(){

 LARGE_INTEGER tick;

 LARGE_INTEGER timestamp;

 long time;

 QueryPerformanceFrequency(&tick);

//QueryPerformanceFrequency函數得到你的計算機裡高精度計時器每秒計時多少次,

//QueryPerformanceCounter函數得到目前計時器記了多少次.類似與GetTickCout.

 QueryPerformanceCounter(&timestamp);

 int us=(timestamp.QuadPart % tick.QuadPart)*1E6/tick.QuadPart;//取微秒級的時間

<b></b>

<b>/*us就是計算秒之後的時間*/</b>

 time = timestamp.QuadPart/tick.QuadPart;

 int hours = time/3600;

 time=time- (hours * 3600);

 int minutes = time/60;

 int seconds = time- (minutes * 60);

 printf(

  "系統已經啟動了 %d小時%d分%d秒 %u微秒\n系統鐘頻%u, %uMHz\n",

  hours, minutes, seconds,

  us,

  tick.LowPart,

  tick.LowPart/1000000

 );//列印當時的時間

<b>return us,傳回微秒級的時間,注意這裡隻傳回的是秒以後的時間,并未傳回準确的時間</b>

}

将時間輸出到微妙級别

本文轉自 神迹難覓 51CTO部落格,原文連結:http://blog.51cto.com/ji123/1977874,如需轉載請自行聯系原作者

繼續閱讀