2011-12-19 71 views
12

可能重複:
How to measure time in milliseconds using ANSI C?
How can I get the Windows system time with millisecond resolution?如何獲得以毫秒爲單位的當前時間在C語言編程

我們要計算其玩家已經採取措施來完成遊戲的時間。 但是用time.h我們只能以秒計算。但那不是確切的。是否有可能以毫秒爲單位? 和%是多少?到printf?

+2

準確dupilcate http://stackoverflow.com/questions/361363/how-to-measure-time-in-milliseconds-using-ansi-c – niko 2011-12-19 08:19:09

回答

15

快速回答

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

int main() 
{ 
    clock_t t1, t2; 
    t1 = clock(); 
    int i; 
    for(i = 0; i < 1000000; i++) 
    { 
     int x = 90; 
    } 

    t2 = clock(); 

    float diff = ((float)(t2 - t1)/1000000.0F) * 1000; 
    printf("%f",diff); 

    return 0; 
} 
+15

我認爲'時鐘'產生使用的CPU時間,而不是實時。 – cnicutar 2011-12-19 08:20:08

+14

此代碼雖然可能在某些系統上正確,但並不總是有效。你應該使用CLOCKS_PER_SEC而不是硬編碼1000000. – jarmod 2013-03-03 23:49:51

+1

@jarmod很好的皮卡 - 它特別需要在MS VC++的windows下,其中CLOCKS_PER_SEC設置爲1000. – 2013-10-15 07:49:23

17

有沒有便攜的方式獲得在標準C小於一秒的分辨率因此,最好你可以做的是,使用POSIX功能gettimeofday()

2

如果你是一個類Unix系統上,使用gettimeofday,結果從微秒轉換爲毫秒。

相關問題