【发布时间】:2012-01-31 10:27:49
【问题描述】:
我正在使用 C 语言中的 time.h 文件来帮助我们处理时间/日期函数。
我遇到了:
struct tm * _Cdecl localtime(const time_t *__timer);
...这似乎返回了一个指向 tm 结构的指针。我发现按地址返回主要用于返回新的内存分配。
如果是这样,上面的返回实际上是如何工作的(struct tm 的返回地址)。返回的对象是否在某处定义?
谢谢
【问题讨论】:
-
您在代码中定义和分配 tm 结构 。 localtime( ) 将其输出存储在该结构中并返回指向同一结构的指针.这似乎是多余的,但有时取回指针很方便,即使您知道结构在哪里。
-
@PeteWilson - 嗯,不,你没有。请参阅下面的答案。您所描述的只是来自SUSv2的
_r版本的调用(localtime_r())或MSVC中的_s版本的调用中的情况
标签: c function pointers struct