struct timeval是64位长。对于一个项目,我需要将这个long(struct timeval)转换为两个32位块,并将每个块放入一个不同的变量中。我该怎么做呢? 提前完成。
答案 0 :(得分:2)
uint32_t* values = &timevalstruct;
// depends on endianess
uint32_t v1 = values[0];
uint32_t v2 = values[1];
答案 1 :(得分:1)
作为leppie答案的补充:
union tvs
{
struct timeval tv;
struct ints {
uint32_t v1;
uint32_t v2;
};
};
tvs t;
t.tv = timevalstruct;
uint32_t v1 = tv.ints.v1;
uint32_t v2 = tv.ints.v2;
如果你不想处理指针。
答案 2 :(得分:0)
看到这个: http://linux.die.net/man/2/gettimeofday
你能使用timeval结构的tv_sec和tv_usec字段吗?
答案 3 :(得分:0)
struct timeval tv;
...
uint32_t seconds = tv.tv_sec;
uint32_t micros = tv.tv_usec;
你去了,分成32位整数。