c - 如何将数组的值设置为单个变量

标签 c arrays

我正在从 ARM micro 中的 SD 卡读取值:

Res = f_read(&fil, (void*)buf, 6, &NumBytesRead);

其中fil是指针,buf是存储数据的缓冲区。

这就是问题所在:它是一个数组,但我想将该数组的内容放在一个变量中。

举个实际例子:从文件中读出的6个字节是:

buf[0] = 0x1B
buf[1] = 0x26
buf[2] = 0xB3
buf[3] = 0x54
buf[4] = 0xA1
buf[5] = 0xCF

我希望:uint64_t 数据 等于0x1B26B354A1CF。也就是说,数组的所有元素“连接”在一个 64 位整数中。

最佳答案

如果没有类型双关,你可以像下面那样做。

uint64_t data = 0;
for (int i=0; i<6; i++)
{
  data <<= 8;
  data |= (uint64_t) buf[i];
}

关于c - 如何将数组的值设置为单个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56616473/

相关文章:

条件不属于 C 中的 IF 范围

JavaScript嵌套数组过滤问题

java - 如何获取字符串数组中的数字并将它们放入 int 数组中

c - gstreamer 在第一个示例程序中没有打开窗口

c - 如何使gcc链接静态库中的强符号覆盖弱符号?

C代码停止运行

c - C语言中blank是怎么定义的?

c - 指向全局数组中元素位置的全局变量(在 C 中)

css - 如何使文本与类别数组一起迭代

c# - 与 LINQ 相比,为什么 Array.Sort() 这么慢?