我在保存时间戳方面存在问题 -
在头文件中,我有以下代码:
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_since_epoch()/ std :: chrono :: milliseconds(1);
但之后线程停止了:
https://github.com/THOMAS-Projekt/THOMAS/blob/master/MotorControl.cpp#L222如果我保存其他数据,也会发生这种情况。
如果我把它搞砸了,那就有效了
答案 0 :(得分:1)
如果你想节省毫秒:
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();
答案 1 :(得分:0)
您可以使用无符号长指针而不是长指针。
unsigned long lastHeartBeat =
std::chrono::system_clock::now().time_since_epoch() /
std::chrono::milliseconds(1);
我希望在你的情况下这样做会很好。