The C `clock()` function just returns a zero
clock() function always returning 0
我查了所有这些问题和答案
我了解到clock()会根据每个系统返回的某个常数返回时钟滴答声
然后time()返回秒数。
首先,我试图像这样使用clock()测量排序算法的执行时间:
#include <iostream>
#include <ctime>
... Some other headers and codes
a = clock();
exchange_sort();
a = clock() - a;
... Rest of the code
我尝试了许多不同的数据类型,例如int,clock_t,long,float。
然后,我以已经增加的顺序对一个很大的数组int arr[1000]
进行了排序。
但是a
的值始终为0,因此我尝试使用gdb查找原因,并在排序算法所在的行上设置了一个断点,以便可以检查a = clock();
的值,并变量中必须有一些数字,但只有0。
因此,在那之后,我尝试检查该功能是问题本身还是其他类似问题:
#include <iostream>
#include <iostream>
int main()
{
int a;
clock_t b;
float c;
long d;
a = clock();
b = clock();
c = clock();
d = clock();
return 0;
}
然后我通过gdb检查了每个变量的值,在放入clock()
的返回值之前只有垃圾数字,但是在变量里面只有0之后。
因此,显然clock()
在我的结论中一直都返回0
我真的不知道该如何解决
我的g ++版本是4.4.7。 我在Linux上运行了 我的处理器是x86_64-redhat-linux