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

时间:2014-02-13 20:54:02

标签: c linux return-value gettimeofday

我有一个函数,它将当前的gettimeofday值作为double返回。问题是返回的值我看到函数内部与在函数外部分配的值不同。

这是一个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

正如您所看到的,START的值与time不匹配!

START定义为double START

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

0 个答案:

没有答案