2011-03-27 46 views
2
time_t raw_time = time(NULL); 
tm* current_time = localtime(&raw_time); 

我自己得到了答案......我完全搞砸了警告。不管怎么说,还是要谢谢你。从time_t到const time_t的无效转换*

+0

你可以发布什么答案是关闭你的票吗?这个人做搜索可以看到答案。 – 2011-03-27 15:28:21

+0

当然!我将在下面发布答案 – JASON 2011-03-28 03:12:08

回答

2

localtime需要一个参数“time_t *”,它是一个指针。所以你必须把&放在那里。

4

localtime()函数的历史可以追溯到(int)为16位并且在堆栈上传递(long)时没有得到广泛支持;因此,它被指定通过(long *),这在当时是16位。它保持原样,因为改变它会破坏大量的代码。你会发现大部分时间相关的功能都是这样做的,因为它们是使用(long)时唯一的功能。 (lseek()来得晚了。请注意猜测什么非(long) -using函数替换它?)

+0

另外:您可以从中得出的一个结论是,他们*在未来几年使用“(长)”的时候会提前思考 - 只是不够远。这并不重要,因为考虑到“(很长)”有点危险,“(很长)”是不可能的。 – geekosaur 2011-03-27 06:26:24