真正简单的问题。根据我的手册页,这两个将做同样的事情:
time_t t;
time(&t);
printf("Time: %ld", t);
...
printf("Time: %ld", time(NULL));
那么,传递指向时间的指针到底有什么好处呢?如果 time()
由于没有时钟可用而失败,我认为这两种变体都没有任何好处。
最佳答案
好处是您不必在调用“时间”后将数据复制到另一个结构中。
如果你是准备数据缓冲区以发送到另一个应用程序/服务器,您将不得不复制数据,这是额外的开销。通过将指针传递到您的数据结构中,您可以一次性将其放在正确的位置。
当然,如果您对数据的唯一用途是将其转换为另一种格式,例如文本 printf,那么使用 NULL 调用它并节省第一个示例所需的额外存储空间会更有效。
最后,由于时间函数使用单个位置来存储其内部时间结构,因此第一种方法将更加线程安全,尽管我不记得“时间”是否实际上是线程安全的。
关于c - 时间(空);与时间(&something);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2928575/