gpt4 book ai didi

c - C 中的时间戳

转载 作者:行者123 更新时间:2023-11-30 15:40:15 25 4
gpt4 key购买 nike

有没有从零开始的以毫秒或秒为单位的基本时间戳示例?

如果我有一个 8 位无符号整数数组:

uint8_t array[10];

可以以某种方式将毫秒存储到第一个元素中,并将秒存储到数组的第二个元素中,如下所示:

数组[0] = 毫秒;

数组[1] = 秒;

最佳答案

如果可能,我会使用 uint16_t 数组来存储毫秒数(或使用更大的类型,具体取决于您需要存储的时间值有多大)。

由于您的评论表明由于某种原因您不能这样做,因此我建议将其分解,以便最低有效位位于第一个元素中,最高有效位位于第二个元素中。例如,如果您有一个十六进制值 0x1234 的时间戳,您可以将其存储为

myArray[0] = 0x34;
myArray[1] = 0x12;

请注意,您可以像读取和写入这些值一样读取和写入 16 位值,尽管它们位于 8 位值的数组中,但使用类型转换和指针,使用类似的东西

 my16bitValue = ((uint16_t*)myArray)[0];

只要您都以这种方式读写,处理器的字节顺序并不重要。不过,正如 chux 在下面指出的那样,如果您在未正确对齐的边界上访问内存(即内存地址不是类型中字节数的倍数),那么您可能会遇到段错误,或者至少会出现明显的段错误。性能下降,具体取决于您的架构。可能有更好的方法,但如果不了解您想要实现的目标,就很难说。

关于c - C 中的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21102110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com