Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.224.246.203] |
|
Сообщ.
#1
,
|
|
|
Язык С
ОС Linux Имеется две переменных типа long: в одной хранятся секунды с 1 янв 1970 года, в другой - микросекунды текущей секунды. Мне хотелось бы сделать из двух переменных одну, чтобы зафиксировать два разных её значения и посчитать разницу между ними в микросекундах. Существует ли такая функция, которая из этих двух переменных делает одну? Если да, то какая? Спасибо. |
Сообщ.
#2
,
|
|
|
Привет!
Функция, нужная тебе, скорее всего не существует, но ее легко написать: result = sec * 1000000 + mcsec; // sec - секунды, mcsec - микросекунды Проблема в том, что в 32-х битную long нужное тебе значение не поместится, так как sec содержит в данный момент около 1030612695 = 0x3d6de6d7, что составляет половину диапазона signed long (или четверть unsigned long), так что для вычислений тебе придется использовать переменную типа long long. В моей системе (64-битная HP-UX c 32-битным компилером) длины типов следующие: time_t = 4 байт long = 4 байт long long = 8 байт |