2016-05-04 4 views
0

Я пытаюсь измерить время в C в микросекундах. Я пробовал этот код, но значение time_passed - это огромное количество, а не 0 (или 1).Измерение времени в C дает неправильный результат

struct timeval start; 
    settimeofday(&start,NULL); 
    struct timeval stop; 
    settimeofday(&stop,NULL); 
    unsigned long long int time_passed = 
     (stop.tv_sec-start.tv_sec)*1000000 + (stop.tv_usec - start.tv_usec); 
    printf("time passed: %llu us\n",time_passed); 
+1

С момента вашего запуска и остановки нет инструкции. Только декларация. – wildplasser

+0

Что значит? – Charlestone

+0

Он означает, что нет ничего, чтобы вычислить между 'start' и' stop' –

ответ

7

Вы звоните settimeofday(), когда вы должны называть gettimeofday()!

Смежные вопросы