在 C 中测量时间给出了错误的结果

Measuring time in C gives wrong result

我正在尝试以微秒为单位测量 C 中的时间。我试过这段代码,但值 time_passed 是一个巨大的数字,而不是 0(或 1)。

   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);

你打电话给 settimeofday(),而你应该打电话给 gettimeofday()