2011-12-19 81 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,结果从微秒转换为毫秒。

相关问题