В моем домашнем задании я должен измерить время вычисления для разных алгоритмов. Для этого мне даны следующие функции «beginTime» и «endTime». Однако, когда я их компилирую вместе с моим алгоритмом, компилятор показывает, что «start» и «stop» не определены. Но я не знаю, как их определить (какой тип они должны быть), и как заставить «start» в «endTime» ссылаться на «start» в «beginTime». Как я могу это исправить? Также, как я могу напечатать возвращаемое значение?Как измерить время вычисления
void
beginTime()
{
gettimeofday (&start, 0);
}
float
endTime()
{
gettimeofday (&stop, 0);
double begin = (double) start.tv_sec + (double) (start.tv_usec/1.E6);
double end = (double) stop.tv_sec + (double) (stop.tv_usec/1.E6);
return end - begin;
}
Использование 'float' для' endTime() 'начнет отбрасывать микросекунды, как только вы запустите таймер более 10 секунд. Вам почти наверняка нужно использовать 'double', а не' float'. –
@JonathanLeffler: 'float' хватает. Фактические вычисления выполняются с помощью 'double'. Только результат преобразуется в 'float'. Вероятно, домашнее задание не требует измерения общего времени с относительной точностью больше 2 ** - 23. –