gpt4 book ai didi

c++ - 请帮助我一个简单的C++ std::time_t问题

转载 作者:行者123 更新时间:2023-12-03 07:09:43 27 4
gpt4 key购买 nike

我正在尝试获取当前时间,并减去设置的秒数来查找过去的时间。请参阅下面的代码示例...

#include <ctime>
#include <stdio.h>
void main()
{
uint32_t sec = 100;
std::time_t t = std::time(NULL);
std::time_t mt = t - (std::time_t)sec;
struct std::tm* currTime = std::localtime( &t);
printf( "Current Time %s\n", asctime(currTime) );
struct std::tm* modTime = std::localtime( &mt);
printf( "Modified Time %s\n", asctime(modTime) );
printf( "Current Time %s\n", asctime(currTime) );
}
最初似乎可以用于前两张照片,但第三张照片与第二张照片相同。我究竟做错了什么?谢谢!
输出:
Current Time  Thu Oct 29 18:10:39 2020

Modified Time Thu Oct 29 18:08:59 2020

Current Time Thu Oct 29 18:08:59 2020

最佳答案

这在manual pagelocaltime(3)中进行了解释:

The return value points to a statically allocated struct which might beoverwritten by subsequent calls to any of the date and time functions.


您的 localtime始终返回指向 相同内部对象的指针,并且每次调用它时,它都会覆盖其内容并返回相同的指针。
因此,两个指针最终都指向具有相同内容的同一对象。
如手册页所述,存在另一个 localtime_r库调用,它不受此限制,但是您必须做更多的工作才能使用它。

关于c++ - 请帮助我一个简单的C++ std::time_t问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64601055/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com