C中的时间测量

时间:2013-11-04 17:53:30

标签: c

我正在尝试测量我的程序在循环中执行多个操作所花费的时间,整个程序用C语言编写。我正在使用这篇文章中的方法:

C# vs C - Big performance difference

但是,当我尝试使用那个方法时,在clock()的声明行上,我收到一个错误:在函数main中不正确地使用了typedef符号。

包含头文件,不会导致任何错误。这是一个用于MS-DOS的TurboC编译器编写的16位C程序。我不确定它使用的是哪个版本的C,但我认为它最有可能是C89或C的早期版本之一。我不知道这是否会导致语法差异?

这是我正在使用的代码:

clock_t start = clock();
while(count < 10000)
{
     count++;
}
printf("Time elapsed: %f\n", ((double)clock() - start) / CLOCKS_PER_SEC);   

错误与我上面提到的完全一样。

1 个答案:

答案 0 :(得分:2)

在旧的16位C中,您可能应该使用time_t和time()函数。从大约发明电子邮件开始,它们就被用于此目的。

如果你这样做,你的代码将在2038年的某个时候死于可怕的死亡。的 http://en.wikipedia.org/wiki/Year_2038_problem

 #include <time.h>
 time_t start = time();
 /* do a bunch of stuff */
 time_t stop = time();
 unsigned long int elapsedSeconds = stop - start;

如果使用time_t声明出现问题,请尝试使用unsigned long int