0

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

C# vs C - 巨大的性能差异

但是,当我尝试执行该方法时,在clock() 的声明行中,出现错误:在函数main 中不正确使用typedef 符号。

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

这是我正在使用的代码:

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

错误正是我上面提到的。

4

1 回答 1

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改用。

于 2013-11-04T18:03:33.830 回答