时间(NULL)和时间(&计时器)之间的区别是什么

时间:2013-04-09 23:23:14

标签: c

考虑:

#include <time.h>

time_t now = time(NULL);

VS

time_t timer;
time(&timer);

它们是否都生成UTC值,如果不生成,它们有何不同?

1 个答案:

答案 0 :(得分:3)

没有太大区别。理论上,你可以写:

time_t t1;
time_t t2 = time(&t1);

这会将t1t2设置为相同的值。

我通常使用:

time_t t3 = time(0);  // Or NULL

因为我很少需要两份同时的副本。目前尚不清楚为什么双重行为被认为是可取的,但是1978年第7版UNIX™就是这样,并且界面没有改变。

请注意,标准C(ISO / IEC 9899:2011§7.27.2.4'time函数')只是说:

  

time函数确定当前日历时间。值的编码是   未指定的。

time()的POSIX定义为您提供了更有用的定义:

  

time()函数应返回自纪元以来的秒数。

     

tloc参数指向还存储返回值的区域。如果tloc是空指针,则不存储任何值。

这可能是“UTC时间”的意思。