C++计时对话指针

C++ chrono Time Conversation Pointer

本文关键字:指针 对话 C++      更新时间:2023-10-16

我在保存时间戳-时遇到问题

在头文件中,我有以下代码:

long *_lastHeartbeat;

现在我想在_lastHeartbeat:中节省时间

_lastHeartbeat = std::chrono::system_clock::now().time_since_epoch() / std::chrono::milliseconds(1);

但我只得到这个错误-

error: invalid conversion from ‘std::__success_type<long int>::type {aka long int}’ to ‘long int*’ [-fpermissive]
lastHeartbeat = std::chrono::system_clock::now().time_since_epoch() / std::chrono::milliseconds(1);
                                                                    ^

我不知道该怎么办。

编辑:
主要问题已经解决,但我还有一个问题:我这样保存它:_lastHeartbeat=std::chrono::system_clock::now().time_sance_epoch()/std::chrono::毫秒(1);但随后线程停止:https://github.com/THOMAS-Projekt/THOMAS/blob/master/MotorControl.cpp#L222如果我保存其他数据,也会发生这种情况。

如果我把它发送出去,它就工作了

如果您想节省毫秒:

auto timestamp = std::chrono::system_clock::now();
auto time_since_epoche = timestamp.time_since_epoch();
auto milliseconds_since_epoch = std::chrono::timepoint_cast<std::chrono::milliseconds>(time_since_epoche);
std::cout "milliseconds since epoche: " << miliseconds_since_epoche.count();

您可以使用无符号长指针而不是长指针。

unsigned long lastHeartBeat =
    std::chrono::system_clock::now().time_since_epoch() / 
    std::chrono::milliseconds(1);

我希望这对你来说会很好。