C - конвертировать между структурой timeval и uint32_t, чтобы вычислить прошедшее время
Я прочитал много постов на stackru о порядке байтов для сети.
Например, если я сделаю что-то вроде этого:
struct timeval start_t
gettimeofday(&start_t, NULL);
Теперь, как я могу быть уверен, что этот тип броска будет работать?
uint32_t receivedTime = someGetterSomewhere();
struct timeval result = (struct timeval) receivedTime;
struct timeval diffTime;
timersub(&start_t,&result,&diffTime);
// do stuff like timersub, etc to get ms elapsed time
int calculatedTime = (int) floor( ((diffTime.tv_sec) * 1000 + (diffTime.tv_usec) / 1000) + 0.5);
Спасибо за ответы
PS:
Мой Gcc говорит, что это не разрешено
error: aggregate value used where an integer was expected
pkt_set_timestamp(emptyPacket, (const uint32_t) start_t);