如何在C编程中获取当前时间的毫秒数

13

2
精确复制 https://dev59.com/jHRC5IYBdhLWcg3wP-n5 - niko
3个回答

20

在标准的C语言中,没有可移植的方法可以获得低于一秒的分辨率。所以你最好使用POSIX函数gettimeofday()


在Windows上,你也可以使用GetTickCount()。 - RhetoricalRuvim

14

快速回答

#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;   
}

20
жҲ‘и®Өдёәclockиҝ”еӣһзҡ„жҳҜCPUжүҖдҪҝз”Ёзҡ„ж—¶й—ҙпјҢиҖҢдёҚжҳҜзңҹе®һж—¶й—ҙгҖӮ - cnicutar
17
这段代码在某些系统上可能是正确的,但并不总是有效。你应该使用CLOCKS_PER_SEC而不是硬编码的1000000。 - jarmod
1
@jarmod 不错的发现 - 在 MS VC++ 下的 Windows 平台上是必需的,因为 CLOCKS_PER_SEC 被设置为 1000。 - dodgy_coder
根据@jarmod的评论,答案不应该被更改或者至少将其移除作为正确答案吗?(@Błażej Michalik) - MikeL

1

如果你在类Unix系统上,可以使用gettimeofday函数,并将结果从微秒转换为毫秒。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接