代码:
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?
答案 0 :(得分:1)
这一行有很多错误:
fscanf(fp, "%lu\n", latency);
&latency
(您的版本是一个严重的逻辑错误)uint32 latency
不一定是unsigned long
我假设您想要读取一个数字到您希望适合uint32的延迟?
唯一可行的方法是使用ifstream。
这是因为istream的运营商>>将为非标准uint32正确重载。
这样做:
std::ifstream myfile("file_containing_values.txt");
uint32 latency;
myfile >> latency; // correct overload is selected by the compiler.