读取纳秒值的数据类型是什么?
what is the data type for reading a nano second value?
我正在读取一个纳秒值,并希望将其存储在一个特定的变量中,这样我就不会丢失数据。有人能告诉我数据类型是什么吗?
示例:
struct timespec ts;
getrawmonotonic(&ts);
end_time = timespec_to_ns(&ts);
end_time的数据类型是什么? 在c++中,这将是std::chrono::nanoseconds。例如,要查找执行某些代码所花费的时间长度,您可以这样写:
auto start = std::chrono::system_clock.now();
//do some things
//...
auto end = std::chrono::system_clock.now();
std::chrono::nanoseconds nanoseconds_taken =
duration_cast<std::chrono::nanoseconds>(end - start);
std::cout << "Took: " << nanoseconds_taken.count() << " nanosecondsn";
timespec_to_ns的定义如下:
/**
* timespec_to_ns - Convert timespec to nanoseconds
* @ts: pointer to the timespec variable to be converted
*
* Returns the scalar nanosecond representation of the timespec
* parameter.
*/
static inline s64 timespec_to_ns(const struct timespec *ts)
{
return ((s64) ts->tv_sec * NSEC_PER_SEC) + ts->tv_nsec;
}
所以你应该把它存储在64位整数中
这取决于timespec_to_ns
的确切规格。
对于linux,类型为s64
。在您自己的系统中,您应该能够通过查看声明timespec_to_ns
的头文件来确定类型。
在一般情况下(仅针对c++),您可以使用auto
自动推断正确的返回类型:
struct timespec ts;
auto end_time = timespec_to_ns(&ts);
//Convert to milliseconds:
auto millis = end_time/1000000.
相关文章:
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- 如何声明一个标准::提升直方图的向量?提升直方图的类型是什么?
- RSA_verify中预期的数据类型是什么,无法验证从 Java 生成的签名
- 字符串中单个字符作为数组的数据类型是什么
- 如果我获得Integer和Double的产品,输出的数据类型是什么
- 通过插座发送的内容的数据类型是什么
- 向量中对元素的数据类型是什么?
- 对应于 AS3 编号(整数)的C++数据类型是什么?
- C++中字符串文字的数据类型是什么
- C++什么数据类型是thread_id,它能分配给变量吗
- Streamsize,Streamoff和其他与流相关的数据类型的实际类型是什么
- 什么数据类型是 16 位操作系统中的 32 位和 32 位操作系统中的 64 位
- C++ 中双引号内的字符串的数据类型是什么
- 将 c++ dll 导入 vb.net 时 float*(图像类型)的等效数据类型是什么?
- C++中最大的数据类型是什么
- C和c++中内置数据类型的类型是什么?
- c++中的布尔数据类型是什么?
- 读取纳秒值的数据类型是什么?
- vptr的数据类型是什么
- C++中字符串文字的数据类型是什么