Я написал следующую программу в C для расчета времени выполнения (на машине Windows -7) :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
double time_spent = 0.0;
clock_t begin;
clock_t end;
begin = clock();
// code to read a file
end = clock();
time_spent += ((double)(end - begin)) / CLOCKS_PER_SEC;
printf("Time elapsed is %f seconds", time_spent);
getch();
return 0;
}
В конце выполнения значение (end-begin)
отрицательно. Кроме того, значение begin
было 46, а значение end
было 43 после выполнения программы.
Я использую 64-битный Windows -7.
- Может ли кто-нибудь объяснить, почему значение
end
меньше begin
. - Как это можно исправить на windows машине .
( clock (), возвращающее отрицательное значение в C, говорит только о POSIX).