【发布时间】:2014-06-29 20:59:36
【问题描述】:
代码:
s64 end_time;
struct timespec ts;
getrawmonotonic(&ts);
end_time = timespec_to_ns(&ts);
如何从 end_time 中删除前三个字节和最后一个字节?我想将它存储在 uint32 中。有人可以告诉我该怎么做吗?
uint32 latency;
fscanf(fp, "%lu\n", latency); //fp is reading the end_time and storing in latency.
latency = (uint32) (latency >> 8) & 0xFFFFFFFF;
从 uint32 读取 s64 值后。我只从中读取 4 个字节。 是否可以从 uint32 读取 s64 ??
【问题讨论】:
-
或许
(end_time >> 8) & 0xffffffff? -
s64和uint32都不是标准的 C 或 C++ 类型。我假设它们分别是有符号的 64 位整数和无符号的 32 位整数,但只有给出的信息它们可以是任何东西。 -
自 C99 以来的标准方式是
int32_t和unsigned int64_t -
@LưuVĩnhPhúc 而不是
uint32_t和int64_t。