Функция C `clock ()` просто возвращает ноль
Функция часов () всегда возвращает 0
почему C clock () возвращает 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