我试图使用gettimeofday创建一个计时器。已调用函数"time"来重置和获取计时器的当前时间。但是当我尝试获取第二个 tine 值时,该程序给出了垃圾值。请帮忙
#include<stdio.h>
#include <sys/time.h>
#include <stdlib.h>
struct timeval cur;
double time(int a);
main() {
time(0);
printf("%lfn",time(1));
sleep(3);
printf("%lfn",time(1));
}
double time(int a) {
double rtime;
if(a==0) {
gettimeofday(&cur,NULL);
rtime=(double)(cur.tv_sec);
printf("%lfn",rtime);
} else if(a==1) {
gettimeofday(&cur,NULL);
return((double)(cur.tv_sec-rtime));
}
}
你的例行time()
不会记住rtime
,除非你将rtime
指定为静态:
static double rtime;
而且:目前还不清楚为什么你把这些数字指定为双精度。