C 返回值与实际返回值不匹配

C 返回值与实际返回值不匹配,c,linux,return-value,gettimeofday,C,Linux,Return Value,Gettimeofday,我有一个函数,它以double形式返回当前的gettimeofday值。问题是我在函数内部看到的返回值与在函数外部指定的值不同 下面是一个gdb代码段- (gdb) n 3391 START = getCurrentTime() (gdb) s getCurrentTime () at file1.c:583 583 gettimeofday(&curTime, NULL); (gdb) n 584 time = (d

我有一个函数,它以double形式返回当前的gettimeofday值。问题是我在函数内部看到的返回值与在函数外部指定的值不同

下面是一个gdb代码段-

(gdb) n
3391            START = getCurrentTime()
(gdb) s
getCurrentTime () at file1.c:583
583             gettimeofday(&curTime, NULL);
(gdb) n
584             time = (double)(1.e3*curTime.tv_sec) + (double)(1.e-3*curTime.tv_usec);
(gdb) n
587             return time;
(gdb) p time
$77 = 1392323782187.8721
(gdb) n
588     }
(gdb) n
function3 () at file2.c:3406
3406            if (0 < var2)
(gdb) p START
$78 = 187872
(gdb) p (double)START
$79 = 187872
(gdb)n
3391开始=getCurrentTime()
(gdb)s
getCurrentTime()位于file1.c:583
583 gettimeofday(&curTime,NULL);
(gdb)n
584时间=(双精度)(1.e3*curTime.tv_-sec)+(双精度)(1.e-3*curTime.tv_-usec);
(gdb)n
587返回时间;
(gdb)p时间
$77 = 1392323782187.8721
(gdb)n
588     }
(gdb)n
函数3()位于文件2.c:3406
3406如果(0
如您所见,
开始
的值与
时间
不匹配

START
定义为
double START


如何找出导致此问题的原因

你能发一封邮件吗?
file2.c
知道
getCurrentTime
的原型吗?如果不是,它可能只是假设它返回一个
int
(如果您是以C89编译的)。@rmartinjak yes您是正确的。我记得看到那个警告。在我声明
double getCurrentTime()之后,这可以正常工作。谢谢