Я разрабатываю приложение C++ для кросс-платформенной 32-битной встроенной системы (windows и linux). Для одной необходимой функциональности мне нужно вычислить разницу во времени в миллисекундах. Во-первых, самая большая точность, которую дает временная метка эпохи для 32-битных систем, - это вторая. Большинство соответствующих ответов, которые я наткнулся либо 64bit, связанных как с использованием станд :: часы или станд :: хроно как:Как получить разницу во времени в миллисекундах в кросс-платформенной C++ 32-битной системе?
std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()).count();
Или система sprecific с помощью
#include <sys/time.h>
или функцию GetSystemTime на окнах. Я также проверил связанные с poco функции времени, но они также основаны на использовании 64-битных переменных. Можно ли это сделать с существующей стандартной или внешней библиотекой C++ или мне следует придерживаться другого подхода?
Вам нужно время в миллисекундах или вам нужна разница между двумя точками времени в миллисекундах? – rustyx
@RustyX Мне нужна разница между двумя временными точками в миллисекундах, но я предполагаю, что если я смогу получить время в миллисекундах в разные моменты времени, это тоже будет выполняться, если только я что-то не упустил. – dk13
Нет стандартного портативного способа получить время в миллисекундах. 'chrono :: system_clock' часто имеет точность 1 с, а' chrono :: high_resolution_clock' не начинается в эпоху. – rustyx